2011-08-23 10:15:44Morris
a224. 明明愛明明
a224. 明明愛明明
/**********************************************************************************/
/* Problem: a224 "明明愛明明" from */
/* Language: C */
/* Result: AC (2ms, 150KB) on ZeroJudge */
/* Author: morris1028 at 2011-08-23 10:04:42 */
/**********************************************************************************/
#include<stdio.h>
main() {
char s[1001];
while(gets(s)) {
int a, t[26] = {}, f = 0;
for(a = 0; s[a]; a++)
if(s[a] >= 'a' && s[a] <= 'z')
t[s[a]-'a']++;
else if(s[a] >= 'A' && s[a] <= 'Z')
t[s[a]-'A']++;
for(a = 0; a < 26; a++)
f += t[a]&1;
puts(f > 1 ? "no..." : "yes !");
}
return 0;
}
內容 :
一看題名,你就該知道,這次跟迴文脫不了關係!
若你不確定什麼是「迴文」,請看 Google 字典的解釋:
迴文 huíwén
一種修辭方式。
通過詞語反復迴環使用,表達二者互相依存或彼此制約的關係,
如“人人為我,我為人人”、“饒人不癡漢,癡漢不饒人”。
輸入說明
:
一筆測試資料一行,包含許許多多但總數不超過 1000 個的大小寫英文字母和標點符號。
不可思議的是,裡面不會有任何空白字元。
輸出說明
:
如果重新安排順序後,有辦法讓這一堆英文字母變成迴文的話,輸出「yes !」,否則輸出「no...」。
注意,大寫和小寫字母視為相同,即 A 和 a 是一樣的,並且,請忽視所有非英文字母的字元。
範例輸入 :
ababa bbaaa Level aaabbbcc abcdefg HowAreYouToday A_man,_a_plan,_a_canal:_Panama.
範例輸出 :
yes ! yes ! yes ! no... no... no... yes !
提示
:
出處
:
/**********************************************************************************/
/* Problem: a224 "明明愛明明" from */
/* Language: C */
/* Result: AC (2ms, 150KB) on ZeroJudge */
/* Author: morris1028 at 2011-08-23 10:04:42 */
/**********************************************************************************/
#include<stdio.h>
main() {
char s[1001];
while(gets(s)) {
int a, t[26] = {}, f = 0;
for(a = 0; s[a]; a++)
if(s[a] >= 'a' && s[a] <= 'z')
t[s[a]-'a']++;
else if(s[a] >= 'A' && s[a] <= 'Z')
t[s[a]-'A']++;
for(a = 0; a < 26; a++)
f += t[a]&1;
puts(f > 1 ? "no..." : "yes !");
}
return 0;
}
上一篇:d906. 2. 排座位問題
下一篇:a225. 明明愛排列
guest
2011-09-16 12:44:15
& = AND 運算, 跟 1 作 AND, 簡單的說, 就是轉成二進制後,
作 AND, 馬上就可以看出奇偶數 2011-09-16 19:46:56
for(a = 0; a < 26; a++)
f += t[a]&1;
我想問一下,t[a]&1是甚麼意思?
版主回應
f += t[a]%2;& = AND 運算, 跟 1 作 AND, 簡單的說, 就是轉成二進制後,
作 AND, 馬上就可以看出奇偶數 2011-09-16 19:46:56
還是不太懂.
不過,謝謝您!