2029-Palindromes _easy version
Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample Input
4
level
abcde
noon
haha
Sample Output
yes
no
yes
no
解题思路
常规思路: 用一个循环的两个变量分别指向字符串的最前端和最末端的字母,分别比较,如果有一对不相等的就可以判断不是回文串。
长度要分奇偶,如果长度为奇数,则最中间的一个字母是不用比较的。
简易方法: 用string类的reverse方法将原字符串反转,然后将原字符串和反转后的字符串比较,如果仍相等就是一个回文串。
string类可以用“==”直接比较!
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
while (n--) {
string s, t;
cin >> s;
t = s;
reverse(t.begin(), t.end());
if (s == t) cout << "yes" << endl;
else cout << "no" << endl;
}
} 
京公网安备 11010502036488号