/* 思路是判断26个字符在两个字符串中出现的次数是不是都一样,如果一样就返回true。 记住这个方法 */ if (s.length()!=t.length()) return false; int[] words = new int[26]; for (int i = 0; i < s.length(); i++) { words[s.charAt(i)-‘a‘]++; words[t.charAt(i)-‘a‘]--; } for (int i = 0; i < 26; i++) { if (words[i]!=0) return false; } return true;
记住这种判断两个字符是不是重排列的方法,就是判断26个字母是不是出现次数相同。
当与字符相关问题是,要记得考虑26字母hashtable