24h購物| | PChome| 登入
2011-08-23 10:15:44| 人氣2,099| 回應2 | 上一篇 | 下一篇

a224. 明明愛明明

推薦 0 收藏 0 轉貼0 訂閱站台

a224. 明明愛明明

內容 :

一看題名,你就該知道,這次跟迴文脫不了關係!
若你不確定什麼是「迴文」,請看 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 !

提示 :

出處 :

(管理:VacationClub)



垃圾題, 用來拚短碼囉

/**********************************************************************************/
/*  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;
}

台長: Morris
人氣(2,099) | 回應(2)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: ZeroJudge |
此分類下一篇:a225. 明明愛排列
此分類上一篇:d906. 2. 排座位問題

guest
for(a = 0; a < 26; a++)
f += t[a]&1;

我想問一下,t[a]&1是甚麼意思?
2011-09-16 12:44:15
版主回應
f += t[a]%2;

& = AND 運算, 跟 1 作 AND, 簡單的說, 就是轉成二進制後,
作 AND, 馬上就可以看出奇偶數
2011-09-16 19:46:56
guest
還是不太懂.

不過,謝謝您!
2011-09-17 23:42:43
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文