问题描述:
- 给定两个字符串
s
和t
,判断它们是不是一组变位词(字母异位词)。- 若
s
和t
中每个字符出现的次数都相同且字符顺序不完全相同,则称s
和t
互为变位词(字母异位词)。 - 字符串中只有小写字母。
- 若
核心思路:
- 简单题,数组或者哈希表计数即可。
代码实现:
class Solution
{
public:
bool isAnagram(string s, string t)
{
if(s.size() != t.size() or s == t) return false;
vector<int> a(26), b(26);
for(int i = 0; i < s.size(); ++i)
++a[s[i]-'a'], ++b[t[i]-'a'];
return a == b;
}
};