04 有效的字母异位词

16 阅读1分钟

题目

image.png

image.png

思路

类似桶排序思路。

  1. 定义两个int类型的辅助数组。

  2. 将字符数组中的字符对应ASCII放在辅助数组中,出现就++。

  3. 最后比较辅助数组的值,如果相等则返回true,否则返回false。

#include<stdio.h>
#include<string.h>
int main(){
	char s1[100],s2[100];
	gets(s1);
	gets(s2);
	int len1,len2,i,j,flag=1;
	int a[27]={0},b[27]={0};//数组赋初值
	len1=strlen(s1);
	len2=strlen(s2);
	for(i=0; i<len1; i++){
		a[s1[i]-'a']++;
	}
	for(j=0; j<len2; j++){
		b[s2[j]-'a']++;
	}
	for(i=0; i<26; i++)
		if(a[i]!=b[i]){
			flag=0;
			break;
		}
	if(flag==1) 
		printf("true");
	else 
		printf("false");
	return 0;
} 

注意

辅助数组,一定要记得赋初值!没有赋初值代码易错!!!