bool isAnagram(char * s, char * t){ int n=strlen(s),m=strlen(t); //检测两个字符串的长度是否相等,因为是有效字母异位同,相同字母的个数是一样的,总的字符串的长度是一样。 if(n!=m) return false; int num[26]={0}; //字母表,记录每个字母的个数。我这里一开始写的时候出现了错误,数组的每个元素为0需要加花括符,而不是直接等于0。 for(int i=0; i<n; i++) //在字母表统计字母的个数,如果两个字符串里面对应的字母相同的话最后数组里面的每个元素都是0。 { num[s[i]-'a']++; num[t[i]-'a']--; } for(int j;j<26;j++) { if(num[j]!=0) return false; } return true; }