🟢 有效的字母异位词
📝 题目描述
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。
需要注意的是,若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。
📋 代码模板
java
class Solution {
public boolean isAnagram(String s, String t) {
}
}💡 提示
和 都仅包含小写字母
🚀 示例

🖊️ 题解
如果
我们可以首先遍历字符串 1),则直接返回false。最后,在两轮遍历结束后,可返回true,此时说明了
由于字符串 letter,计算公式为 letter - 'a'。这样一来,abc..xyz26个英文字母就分别对应了0 - 25。
java
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] cmt = new int[26];
for (char c : s.toCharArray()) {
cmt[c - 'a']++;
}
for (char c : t.toCharArray()) {
if (--cmt[c - 'a'] < 0) {
return false;
}
}
return true;
}
}💭 复杂度分析
基于哈希表的解决方案的复杂度分析如下。
- 时间复杂度:
,其中 为字符串 的长度, 为字符串 的长度。 - 空间复杂度:
,其中 为26,即全部小写英文字母的数量。

