藍橋杯 算法訓練 P0504(c語言版詳細註釋)

試題 算法訓練 P0504

                                                                                  藍橋杯試題解答彙總鏈接

資源限制

       時間限制:1.0s 內存限制:256.0MB


問題描述

       Anagrams指的是具有如下特性的兩個單詞:在這兩個單詞當中,每一個英文字母(不區分大小寫)所出現的次數都是相同的。例如,Unclear和Nuclear、Rimon和MinOR都是Anagrams。編寫一個程序,輸入兩個單詞(只包含英文字母),然後判斷一下,這兩個單詞是否是Anagrams。每一個單詞的長度不會超過80個字符,而且是大小寫無關的。


輸入格式

       長度不超過80個字符的兩個單詞,用空格隔開,不考慮字母大小寫 (大小寫無關)


輸出格式

       yes或者no


樣例輸入

Rimon MinOR

樣例輸出

yes

代碼

#include<stdio.h>
#include<string.h>
int main(){
	char a[81],b[81];
	int num[2][26];//總共有26個字母,num數組用來統計數字的個數 
	scanf("%s%s",a,b);
	memset(num,0,sizeof(num));//把num數組初始化爲0
	int i;
	if(strlen(a)!=strlen(b)){//長度不同的輸出no 
		printf("no");
	}
	else{
		for(i=0;i<strlen(a);i++){
			if(a[i]>='a'&&a[i]<='z'){
				num[0][a[i]-'a']++;//a[i]-'a'即對應字母的對應位置 
			}
			else{
				num[0][a[i]-'A']++;
			}
			if(b[i]>='a'&&b[i]<='z'){
				num[1][b[i]-'a']++;
			}
			else{
				num[1][b[i]-'A']++;
			}
		}
		for(i=0;i<26;i++){
			if(num[0][i]!=num[1][i]){//存在不同的就輸出no 
				printf("no");
				return 0;//若滿足條件這裏直接結束程序 
			}
		}
		printf("yes");
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章