解题思路:
新建一个数组arr
用来记录字符串中字符出现的次数
把字符映射到数组也就是哈希表的索引下标上
字符a
映射下标为0
, z
映射下标为25
如果字符串s
中出现字符c
, 则+1
如果字符串t
中出现字符c
, 则-1
如果arr
中有 等于 0
的元素, 说明s
和t
中所有字符相等
如果arr
中有 不等于 0
的元素, 说明s
和t
中就有字符不相等
class Solution {
public boolean isAnagram(String s, String t) {
int[] arr = new int[26];
for(char c : s.toCharArray()){
arr[c - 'a'] += 1;
}
for(char c : t.toCharArray()){
arr[c - 'a'] -= 1;
}
for(int i : arr){
if(i != 0){
return false;
}
}
return true;
}
}
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
int[] arr = new int[26];
for(char c : magazine.toCharArray()){
arr[c - 'a'] += 1;
}
for(char c : ransomNote.toCharArray()){
arr[c - 'a'] -= 1;
if(arr[c - 'a'] < 0){
return false;
}
}
return true;
}
}