Palindromes |
Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB |
Total submit users: 1853, Accepted users: 1481 |
Problem 10136 : No special judgement |
Problem description |
Background: Palindromes are strings that read the same both forwards and backwards. `Eye' is one such example (ignoring case). In this problem, you get to write a program to determine if a given word is a palindrome or not. |
Input |
Each line of input contains one word with no embedded spaces. Each word will have only alphabetic characters (either upper or lower case). |
Output |
For each line of input, output either `yes' if the word is a palindrome or `no' otherwise. Don't print the quotes. Case should be ignored when checking the words. |
Sample Input |
|
Sample Output |
|
Problem Source |
UD Contest |
AC:
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <vector>
std::vector <char> v;
char t(int& ch)
{
return ch >= 'A' && ch <= 'Z' ? ch -= ('A' - 'a') : ch;
}
int main()
{
// freopen("C:/Users/kiko/Desktop/test.txt", "r", stdin);
int ch;
while (ch = getchar())
{
if (ch != '\n' && ch != -1) v.push_back(t(ch));
else
{
for (int i = 0; i < v.size() / 2; ++i) if (v[i] != v[v.size() - 1 - i]) v.clear();
if (!v.empty()) { printf("yes\n"); v.clear(); }
else printf("no\n");
if (ch == -1) break;
}
}
return 0;
}