242、有效的字母异位词
基本思想:
哈希表
具体实现:
1、定义一个大小为26的数组record
2、record记录字符串s里字符出现的次数
3、需要把字符映射到数组也就是哈希表的索引上
字符a到字符z的ASCII是26个连续的数值
字符a映射到索引0,字符z映射到索引25
遍历s这个字符串时,
将s[i] -'a' 这个索引对应的record+1
4、检查字符串t对应的字符有没有出现在record上
遍历字符串t,
将t[i] - 'a' 这个索引对应的record-1
5、最后如果record的所有元素都是0,则s和t是字母异位词
代码:
class Solution { public boolean isAnagram(String s, String t) { int[] record = new int[26]; for (char c : s.toCharArray()){ record[c - 'a'] += 1; } for (char c : t.toCharArray()){ record[c - 'a'] -= 1; } for (int i : record){ if (i != 0){ return false; } } return true; } }