[蓝桥杯]ALGO-188.算法训练_P0504
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯]ALGO-188.算法训练_P0504
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
Anagrams指的是具有如下特性的兩個(gè)單詞:在這兩個(gè)單詞當(dāng)中,每一個(gè)英文字母(不區(qū)分大小寫(xiě))所出現(xiàn)的次數(shù)都是相同的。例如,Unclear和Nuclear、Rimon和MinOR都是Anagrams。編寫(xiě)一個(gè)程序,輸入兩個(gè)單詞(只包含英文字母),然后判斷一下,這兩個(gè)單詞是否是Anagrams。每一個(gè)單詞的長(zhǎng)度不會(huì)超過(guò)80個(gè)字符,而且是大小寫(xiě)無(wú)關(guān)的。Input:長(zhǎng)度不超過(guò)80個(gè)字符的兩個(gè)單詞,用空格隔開(kāi),不考慮字母大小寫(xiě) (大小寫(xiě)無(wú)關(guān))Output: yes或者no 輸入:Rimon MinOR 輸出:yes 題目描述?
代碼如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main(void) 6 { 7 int i,len1,len2; 8 int num[2][100]; //統(tǒng)計(jì)單詞中字母?jìng)€(gè)數(shù) 9 char ch[2][100]; //記錄兩個(gè)單詞 10 11 memset(num,0,sizeof(num)); 12 memset(ch,0,sizeof(ch)); 13 14 scanf("%s",ch[0]); 15 scanf("%s",ch[1]); 16 len1 = strlen(ch[0]); 17 len2 = strlen(ch[1]); 18 19 if (len1 != len2) 20 { 21 printf("no"); 22 return 0; 23 } 24 25 for (i=0 ; i<len1 ; i++) 26 { 27 //統(tǒng)計(jì)第一個(gè)單詞中各字母的個(gè)數(shù) 28 if (ch[0][i]>='a' && ch[0][i]<='z') 29 num[0][ch[0][i]-'a'] ++; 30 else 31 num[0][ch[0][i]-'A'] ++; 32 33 //統(tǒng)計(jì)第二個(gè)單詞中各字母的個(gè)數(shù) 34 if (ch[1][i]>='a' && ch[1][i]<='z') 35 num[1][ch[1][i]-'a'] ++; 36 else 37 num[1][ch[1][i]-'A'] ++; 38 } 39 40 for (i=0 ; i<len1 ; i++) 41 { 42 if (num[0][i] != num[1][i]) 43 { 44 printf("no"); 45 return 0; 46 } 47 } 48 49 printf("yes"); 50 return 0; 51 } C解法?
解題思路:
記錄兩個(gè)單詞后,依次對(duì)單詞中的字母?jìng)€(gè)數(shù)做統(tǒng)計(jì),
最后比較兩字母,
若出現(xiàn)數(shù)量不同的字母,輸出"no"
否則輸出"yes"
轉(zhuǎn)載于:https://www.cnblogs.com/mind000761/p/10342451.html
總結(jié)
以上是生活随笔為你收集整理的[蓝桥杯]ALGO-188.算法训练_P0504的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux中fdisk硬盘分区方法
- 下一篇: ACM 中常用的算法有哪些?