在Leetcode上刷题时,刷到题目Valid Anagram,给定两个字符串s
和t
,编写一个函数来确定t
是否是s
的一个anagram,谷歌翻译对anagram的解释是通过重新排列另一个单词的字母顺序而组成的一个新单词,比如cinema是iceman的anagram。本质就是判断s
和t
是否有一样的字母组成。
什么是Segmentation fault
我看到这个题目的第一印象就是对字符串s
和t
中的字母排序,然后逐一比对,如果全部相同,就返回true
,否则返回false
。
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
int charcmp(const void *a, const void *b) {
return *(char *)a - *(char *)b;
}
bool isAnagram(char* s, char* t) {
int i;
int s_len;
int t_len;
s_len = strlen(s);
t_len = strlen(t);
if (s_len != t_