文章目录
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.
方法一:
字符串只包含小写字符,总共有 26 个小写字符。可以用 Hash Table 来映射字符与出现次数,因为键值范围很小,因此可以使用长度为 26 的整型数组对字符串出现的字符进行统计,比较两个字符串出现的字符数量是否相同。
public boolean isAnagram(String s,String t){
int [] cnt=new int[26];
for(int i=0;i<s.length();i++) cnts[s.cahrAt(i)-'a']++;
for(int i=0;i<t.length();i++) cnts[t.charAt(i)-'a']--;
for(int i=0;i<26;i++)if(cnts[i]!=0)return false;
return true;
}
方法二:
class Soultion{
public boolean isAnagram(String s, String t){
char[] ss=s.toCharArray();
char[] ts=s.toCharArray();
Arrays.sort(ss);
Arrays.sort(ts);
return Arrays.equals(ss,ts);
}
}