遍历第一个字符串,将遍历到的字符的对应位置上+1,如遇到 a 字符,则 arr[0]++,遇到 b 字符,则arr[1]++…
遍历第二个字符串,相反的,将遍历到的字符的对应位置上-1,如遇到 a 字符,则 arr[0]–,遇到 b 字符,则arr[1] - - …
最后遍历一次记录字母次数的数组 arr ,如果 arr 中各个位置的值都为0,则证明第二个字符串 t 是第一个字符串 s 的字母异位词。
代码:
publicbooleanisAnagram(String s, String t){
int[] arr =newint[26];int SLength = s.length();int TLength = t.length();for(int i =0; i < SLength; i++){
//解决找到字符对应数组的位置的问题 // a - a = 0// b - a = 1// c - a = 2// ......
arr[s.charAt(i)-'a']++;}for(int i =0; i < TLength; i++){
arr[t.charAt(i)-'a']--;}for(int i =0; i < arr.length; i++){
if(arr[i]!=0){
returnfalse;}}returntrue;}