题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
思路:开一个数组存储s中每个出现的字母,然后在t中看是否出现过,通过加减操作维持数组中对应字母的数目。也可以开两个数组直接分别记录然后遍历两个数组看是否对应的字母出现次数相等。
bool isAnagram(char * s, char * t){
if(strlen(s) != strlen(t)){//先判断长度是否等
return false;
}
int charact[26] = { 0 };
while(*s && *t)
{
charact[*s - 'a']++;
charact[*t - 'a']--;
++s;
++t;
}
for(int i=0; i<26; ++i)
{
if(charact[i])//数组中有非零则false
return false;
}
return true;
}