Sicily 4835. Numbersrebmun

2012年每週一賽第四題,水題,我唯一的AC題,差距還是太大了……

沒什麼好說的,模擬手機鍵盤,然後慢慢對比就可以了。

Run Time: 0sec

Run Memory: 304KB

Code Length: 1081Bytes

Submit Time: 2012-02-26 00:06:33

// Problem#: 4835
// Submission#: 1220223
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;

void upper( char s[] ) {
    for ( int i = 0; s[ i ] != '\0'; i++ ) {
        if ( s[ i ] >= 'a' && s[ i ] <= 'z' )
            s[ i ] -= 32;
    }
}

int main()
{
    int n;
    char s[ 21 ];
    map<char, int> keypad;
    int i, j;

    keypad[ 'A' ] = keypad[ 'B' ] = keypad[ 'C' ] = 2;
    keypad[ 'D' ] = keypad[ 'E' ] = keypad[ 'F' ] = 3;
    keypad[ 'G' ] = keypad[ 'H' ] = keypad[ 'I' ] = 4;
    keypad[ 'J' ] = keypad[ 'K' ] = keypad[ 'L' ] = 5;
    keypad[ 'M' ] = keypad[ 'N' ] = keypad[ 'O' ] = 6;
    keypad[ 'P' ] = keypad[ 'Q' ] = keypad[ 'R' ] = keypad[ 'S' ] = 7;
    keypad[ 'T' ] = keypad[ 'U' ] = keypad[ 'V' ] = 8;
    keypad[ 'W' ] = keypad[ 'X' ] = keypad[ 'Y' ] = keypad[ 'Z' ] = 9;

    scanf( "%d", &n );
    while ( n-- ) {
       scanf( "%s", s );
       upper( s );
       for ( i = 0, j = strlen( s ) - 1; i < j; i++, j-- ) {
           if ( keypad[ s[ i ] ] != keypad[ s[ j ] ] )
               break;
       }
       printf( i < j ? "NO\n": "YES\n" );
    }

    return 0;

}                                 


 

發佈了135 篇原創文章 · 獲贊 6 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章