HDU 2163 Palindromes

http://acm.hdu.edu.cn/showproblem.php?pid=2163

 

Problem Description
Write a program to determine whether a word is a palindrome. A palindrome is a sequence of characters that is identical to the string when the characters are placed in reverse order. For example, the following strings are palindromes: “ABCCBA”, “A”, and “AMA”. The following strings are not palindromes: “HELLO”, “ABAB” and “PPA”. 
 
Input
The input file will consist of up to 100 lines, where each line contains at least 1 and at most 52 characters. Your program should stop processing the input when the input string equals “STOP”. You may assume that input file consists of exclusively uppercase letters; no lowercase letters, punctuation marks, digits, or whitespace will be included within each word. 
 
Output
A single line of output should be generated for each string. The line should include “#”, followed by the problem number, followed by a colon and a space, followed by the string “YES” or “NO”. 
 
Sample Input
ABCCBA
A
HELLO
ABAB
AMA
ABAB
PPA
STOP
 
Sample Output
#1: YES
#2: YES
#3: NO
#4: NO
#5: YES
#6: NO
#7: NO
 
代码:
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e5 + 10;
char s[maxn], ss[maxn];

int main() {
    int cnt = 0;
    while(gets(s)) {
        int len = strlen(s);
        if(s[0] == 'S' && s[1] == 'T' && s[2] == 'O' && s[3] == 'P' && len == 4)
            break;
        cnt ++;
        strcpy(ss, s);
        strrev(s);
        printf("#%d: ", cnt);
        if(strcmp(ss, s) == 0)
            printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

  

posted @ 2018-09-13 20:21  丧心病狂工科女  阅读(249)  评论(0编辑  收藏  举报