一、题目描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
二、题解思路
- 暴力的,排序后直接比较;
- 一个数组,第一个字符串有就+1,第二字符串有就-1,之后数组的每个元素是0则返回true;
三、程序示例
class Solution {
public:
bool isAnagram1(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
return s == t ? true : false;
}
bool isAnagram(string s, string t) {
int count[26] = {0};
for(auto ch : s)
count[ ch - 'a' ] += 1;
for(auto ch : t)
count[ ch - 'a' ] -= 1;
for(int i = 0; i < 26; i++)
{
if(count[i] != 0)
return false;
}
return true;
}
};