1.题目描述
2.题解
用一个数组来存放两个字符串中每个单词的个数,而要用一个数组来存放两个字符串单词个数的信息并判断个数是否一致则可以将一个字符串的单词个数记为正数而另一个记为负数,最终通过判断计数数组中是否存在负值(有负值意味着两个字符串中单词的个数不一致)。
大致示意图如下:
3.代码示例
class Solution {
public boolean isAnagram(String s, String t) {
//新建数组存放每个单词的个数
int[] countNum=new int[26];
//如果两个字符串长度不一样则不可能为对方的字母异位词,返回false
if(s.length()!=t.length())
return false;
//记录单词个数
for(int i=0,j=0;i<s.length();i++,j++){
countNum[s.charAt(i)-97]++;
countNum[t.charAt(j)-97]--;
}
//通过判断数组是否有负数来判别两个字符串中的单词个数是否一样
for(int i=0;i<26;i++){
if(countNum[i]<0)
return false;
}
return true;
}
}