有效的字母异位词
有效的字母异位词
leetcode.242
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true
示例 2: 输入: s = "rat", t = "car" 输出: false
说明: 你可以假设字符串只包含小写字母。
这个题思路与哈希一致,但需要注意的是,要理解数组本身就可以作为哈希表的特性,对于这种key在一定范围内的情况,适合用数组作为哈希表,实质上就是自己写哈希函数。
在这个题中,哈希函数就是i-'a'
,总大小为26。
#include <string>
using namespace std;
class Solution {
public:
bool isAnagram(string s, string t) {
int ab[26] = {};
for (char i : s) {
ab[i-'a']++;
}
for (char i : t) {
ab[i-'a']--;
}
for (int i : ab) {
if (i) {
return false;
}
}
return true;
}
};
相关:哈希表
License:
CC BY 4.0