力扣 LeetCode 242. 有效的字母异位词(Day3:哈希表)
解题思路:
哈希表三种数据结构的选择
1. 数组:适用于数据量小的情况
2. set:适用于数据量大的情况
3. map:适用于key-value
什么时候用哈希表?
给你一个元素,判断该元素在这个集合里是否出现过
本题使用数组,s 的字母使得对应位置的次数增加,t 的字母使得对应位置的次数减少
最后整个数组均为零时,则满足异位词的条件
class Solution {
public boolean isAnagram(String s, String t) {
int[] hash = new int[26];
for (int i = 0; i < s.length(); i++) hash[s.charAt(i) - 'a']++;
for (int i = 0; i < t.length(); i++) hash[t.charAt(i) - 'a']--;
for (int i = 0; i < 26; i++)
if (hash[i] != 0) return false;
return true;
}
}