leetcode 242
链接: 力扣 。
题目:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
说明: 你可以假设字符串只包含小写字母。
示例1:
输入: s = "anagram", t = "nagaram"
输出: true
示例2:
输入: s = "rat", t = "car"
输出: false
思路:
很简单的hash就可以解决。设置一个大小为26的int型数组,其中所有元素初始化为0,下标0~25代表字母a~z。遍历第一个串的每个字符,对于当前 i 号位,使 hashMap[s[i] - 'a']加一。然后遍历第二个字符串,对于当前 i 号位,使 hashMap[t[i] - 'a']减一。
最后遍历hashMap数组,如果其中有元素不为0,返回false;反之,返回true。
参考代码:
class Solution {
public:
bool isAnagram(string s, string t) {
int hashMap[26] = {0};
for (int i = 0; i < s.size(); i++) {
hashMap[s[i] - 'a']++;
}
for (int i = 0; i < t.size(); i++) {
hashMap[t[i] - 'a']--;
}
for (int i = 0; i < 26; i++) {
if (hashMap[i] != 0) {
return false;
}
}
return true;
}
};版权声明:本文为jgsecurity原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。