题目描述
若存在两个字符串 s 和 t ,要求编写一个函数来判断 t 是否是 s 的字母异位词
字母异位词:s 和 t 中每个字符出现的次数都相同
C 语言具体代码实现
作者想法如下!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *_a, const void *_b){
char *a = (char*)_a;
char *b = (char*)_b;
return strcmp(a, b);
}
bool isAnagram(char *s, char *t){
if(strlen(s) != strlen(t)){
return false;
}
qsort(s, strlen(s), sizeof(char), cmp);
qsort(t, strlen(t), sizeof(char), cmp);
for(int i = 0; i < strlen(s); i++){
if(s[i] != t[i]){
return false;
}
}
return true;
}
int main(void){
char ch1[] = "anagram";
char ch2[] = "nagaram";
bool is = isAnagram(ch1, ch2);
printf("%d", is); // 1
return 0;
}