题目要求:
给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的 字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
**输出:**false
代码实现:
int cmp(const void* _a, const void* _b) {//qsort排序时使用
char a = *(char*)_a, b = *(char*)_b;
return a - b;//返回第一个字母和第二个字母的差值
}
bool isAnagram(char* s, char* t) {//返回值为true或false
int len_s = strlen(s), len_t = strlen(t);
if (len_s != len_t) {//如果两个字符串长度不相等,则一定不满足字母异位词
return false;
}
qsort(s, len_s, sizeof(char), cmp);//四个参数分别为首元素地址、字符串长度、字符的大小、排序方式
qsort(t, len_t, sizeof(char), cmp);
return strcmp(s, t) == 0;//比较排序后的两个字符串是否相等,相等返回true,不相等返回false
}
作者:力扣官方题解
来源:力扣(LeetCode)