描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:输入: s = “rat”, t = “car”
输出: false
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
class Solution {
public:
bool isAnagram(string s, string t) {
int record[26] = {0};
// 扫描字符串s
for(int i=0; i<s.size(); i++){
record[s[i] -'a']++;
}
//扫描字符串t
for(int j=0; j<t.size(); j++){
record[t[j] -'a']--;
}
//扫描record数组判断结果
for(int k=0; k<26; k++){
// record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符
if(record[k] != 0)
return false;
}
// record数组所有元素都为零0,说明字符串s和t是字母异位词
return true;
}
};