这道题首先想到的是,计算字符串的各个字母的数量,然后,比较各个字母数量是否相等。
在此就可以想到字母的ASCII码,题目标明只有小写,那么,怎么将每个字母数量各个计算。以及存入数组中,
可以先定义一个26长度的数组,然后,对于字母数量,就可以在charAt(i)-97的位置的+1,再进行比较两个数组是否
完全相等,在其中,如果不等,就直接break,最后,就可以根据 i 进行判断,如果 i 不等于26,表示两数组不是完全相等
,则输出false,如果等于,就可以输出true.
class Solution { public boolean isAnagram(String s, String t) { int i,j; int c1 = s.length(); int c2 = t.length(); int[] sa = new int[26]; int[] ta = new int[26]; if(c1 != c2) { return false; } for(i = 0;i <= c1-1;i++) { sa[s.charAt(i) - 97]++; ta[t.charAt(i) - 97]++; } for(i = 0;i <= 25;i++) { if(sa[i] != ta[i]) { break; } } if(i == 26) { return true; } else { return false; } } }