自己一开始用map的做的,后来看参考,哦哦哦,其实可以直接用数组啊,利用字母的0-26特性!!!
public class Solution {
public boolean isAnagram(String s, String t) {
if (s == null || t == null || s.length() != t.length()) {
return false;
}
int[] array = new int[26];
for (int i = 0; i < s.length(); i++) {
array[s.charAt(i) - 'a'] = array[s.charAt(i) - 'a'] + 1;
array[t.charAt(i) - 'a'] = array[t.charAt(i) - 'a'] - 1;
}
for (int n: array) {
if (n != 0) {
return false;
}
}
return true;
// Map<Character, Integer> map = new HashMap<>();
// char[] sArray = s.toCharArray();
// char[] tArray = t.toCharArray();
// for (char c: sArray) {
// if (map.containsKey(c)) {
// map.put(c, map.get(c) + 1);
// } else {
// map.put(c, 1);
// }
// }
// for (char c: tArray) {
// if (map.containsKey(c)) {
// map.put(c, map.get(c) - 1);
// } else {
// return false;
// }
// }
// for (Map.Entry<Character, Integer> entry: map.entrySet()) {
// if (entry.getValue() != 0) {
// return false;
// }
// }
// return true;
}
}