Leetcode字符串相关
题目列表
题目 | 难度 |
---|---|
13. 罗马数字转整数 | 简单 |
14. 最长公共前缀 | 简单 |
28. 实现 strStr() | 简单 |
58. 最后一个单词的长度 | 简单 |
125. 验证回文串 | 简单 |
205. 同构字符串 | 简单 |
242. 有效的字母异位词 | 简单 |
290. 单词规律 | 简单 |
344. 反转字符串 | 简单 |
345. 反转字符串中的元音字母 | 简单 |
383. 赎金信 | 简单 |
387. 字符串中的第一个唯一字符 | 简单 |
389. 找不同 | 简单 |
392. 判断子序列 | 简单 |
409. 最长回文串 | 简单 |
412. Fizz Buzz | 简单 |
434. 字符串中的单词数 | 简单 |
459. 重复的子字符串 | 简单 |
482. 密钥格式化 | 简单 |
500. 键盘行 | 简单 |
技巧与分析
在字符串的题目中,最经典也反复被使用的就是利用HashMap
来统计字符串中单词的出现次数,当然,如果统计的是小写字母,也可以创建一个大小为26的数组,利用cnt[c-'a']
来储存字符的出现次数
经典的题有:242,383,387,409
当涉及到字符串的遍历的时候,一般可以使用字符串的charAt
或者toCharArray
函数,但有些时候,字符串会以空格分开,这个时候,使用split(" ")
函数会有奇效,比如在434
中
哈希表在字符串操作中的用法不止是记录出现次数,在映射关系的题中,哈希表一再出现简化运算,比如在13,205,290
中
而涉及到具体字符的操作,就和数组中一样,使用双指针更加方便,比如在344,345,392
中
而字符串匹配的相关问题,KMP算法一定要掌握,比如在28,459
中