Palindromes _easy version
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 24195 Accepted Submission(s): 14903
Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample Input
4
level
abcde
noon
haha
Sample Output
yes
no
yes
no
Author
lcy
思路:从中间分开,判断左右的字符是否相等,如果相等就继续循环判断,不相等就跳出。
如果左右下标都到头了,则是回文串,否则就不是。
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<string> using namespace std; int main() { int N; string s; cin >> N; while(N--) { cin >> s; int left = (s.length()-1)>>1; int right = s.length()>>1; while(s[left] == s[right] && left >= 0 && right < s.length()) { left--; right++; } if(left == -1 && right == s.length()) cout << "yes" << endl; else cout << "no" << endl; } return 0; }
时间: 2024-11-05 23:18:56