資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
anagrams指的是具有如下特性的兩個單詞:在這兩個單詞當中,每乙個英文本母(不區分大小寫)所出現的次數都是相同的。如,「unclear」和「nuclear」、「rimon」和「minor」都是anagrams。編寫乙個程式,輸入兩個單詞,然後判斷一下,這兩個單詞是否是anagrams。每乙個單詞的長度不會超過80個字元,而且是大小寫無關的。
輸入格式:輸入有兩行,分別為兩個單詞。
輸出格式:輸出只有乙個字母y或n,分別表示yes和no。
樣例輸入
unclear
nuclear
樣例輸出
yac**:
#include
#include
#include
using
namespace std;
string s1, s2;
map<
char
,int
> m1, m2;
intmain
(void
)else
if(s2[i]
>=
'a'&& s2[i]
<=
'z')
m1[s1[i]]++
; m2[s2[i]]++
;//統計每個字母出現的次數
i++;}
map<
char
,int
>
::iterator it1 = m1.
begin()
; map<
char
,int
>
::iterator it2 = m2.
begin()
;if(m1.
size()
!= m2.
size()
)else
it1++
; it2++;}
cout <<
"y"<< endl;}}
return0;
}
還有一種簡單的,適用於多數情況,在本題中可以通過測試,但有一些情況結果會錯誤。
ac**:
#include
#include
using
namespace std;
int sum1, sum2;
string s1, s2;
intmain
(void
)else
if(s2[i]
>=
'a'&& s2[i]
<=
'z')
//將兩串字元中所有的大寫字母變成小寫
sum1 +
=int
(s1[i]);
sum2 +
=int
(s2[i]);
//將兩字串中所有字母的ascii相加
i++;}
if(sum1 == sum2)
cout <<
"y"<< endl;
else
cout <<
"n"<< endl;
}return0;
}
這種方法如果類似輸入bbcc, aadd這種時還是會輸出y。 藍橋杯 演算法訓練 Anagrams問題
演算法訓練 anagrams問題 時間限制 1.0s 記憶體限制 512.0mb 問題描述 anagrams指的是具有如下特性的兩個單詞 在這兩個單詞當中,每乙個英文本母 不區分大小寫 所出現的次數都是相同的。例如,unclear 和 nuclear rimon 和 minor 都是anagrams...
藍橋杯 演算法訓練 Anagrams問題
登入後才能檢視試題。時間限制 1.0s 記憶體限制 512.0mb 錦囊1 錦囊2 錦囊3 問題描述 anagrams指的是具有如下特性的兩個單詞 在這兩個單詞當中,每乙個英文本母 不區分大小寫 所出現的次數都是相同的。例如,unclear 和 nuclear rimon 和 minor 都是ana...
藍橋杯 演算法訓練 Anagrams問題
問題描述 anagrams指的是具有如下特性的兩個單詞 在這兩個單詞當中,每乙個英文本母 不區分大小寫 所出現的次數都是相同的。例如,unclear 和 nuclear rimon 和 minor 都是anagrams。編寫乙個程式,輸入兩個單詞,然後判斷一下,這兩個單詞是否是anagrams。每乙...