public boolean isAnagram(String s, String t) { int[] record = new int[26]; for (char c: s.toCharArray()){ record[c - 'a']++; } for (char c:t.toCharArray()){ record[c - 'a']--; } for (int i = 0;i <26;i++){ if (record[i] != 0){ return false; } } return true; }
本体思路:字母一共26个,那么就定义一个容量为26的数组,a-z在数组中的下标是0-26,形参传入的字符串中的每个字母通过减去a’就会得到下标值,存储的元素为字符串中每个字母出现的次数,之后再将t字符串中出现字母的次数减去,若数组全部为零,说明是异位词。