給定兩個字符串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的字母異位詞。
示例 1:
輸入: s = "anagram", t = "nagaram"
輸出: true
思路:哈希映射
首先判斷兩個字符串長度是否相等,不相等則直接返回 false
若相等,則初始化 26 個字母哈希表,遍歷字符串 s 和 t
s 負責在對應位置增加,t 負責在對應位置減少
如果哈希表的值都爲 0,則二者是字母異位詞
/**
* 有效的字母異位詞
* @param s
* @param t
* @return
*/
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] counter = new int[26];
//兩個字符串中每個字母的出現次數並進行比較
for (int i = 0; i < s.length(); i++) {
counter[s.charAt(i) - 'a']++;
counter[t.charAt(i) - 'a']--;
}
for (int count : counter) {
if (count != 0) {
return false;
}
}
return true;
}