给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:你可以假设字符串只包含小写字母。
字母异位词:由相同的字母按照不同的顺序组成的单词
- 按照这种规则,可以判断这两个单词的长度相等,各个字母出现的次数相等
- 思路:
- 定义一个数组用来存储26个字母出现的次数,第一个串中出现的字母的次数加一,第二个串中出现的字母的次数减一,遍历完成后判断数组中的元素是否都为0,如果为0,说明达到要求,否则不达到要求
public boolean isAnagram(String s, String t) {
int[] alphabet = new int[26]; //存储字母出现的次数
for(int i = 0;i<s.length();i++) { //遍历第一个串(将alphabet数组从0~25排开,依次代表a~z的位置,s.charAt(i)-'a'代表要存储在数组中的位置)
alphabet[s.charAt(i)-'a']++;
}
for (int j = 0;j<t.length();j++) { //遍历第二个串
alphabet[t.charAt(j)-'a']--;
}
for(int i:alphabet) { //判断是否都为0
if(i != 0) {
return false;
}
}
return true;
}