Palindromes
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2923 Accepted Submission(s): 1708
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 <stdio.h>
#include <string.h>
char str[56];
bool f()
{
int len = strlen(str), i = 0, j;
j = len - 1;
while(i <= j){
if(str[i] == str[j]){
++i; --j;
}else return 0;
}
return 1;
}
int main()
{
int cas = 1;
while(scanf("%s", str) != EOF){
if(!strcmp(str, "STOP")) break;
printf("#%d: ", cas++);
if(f()) puts("YES");
else puts("NO");
}
return 0;
}