题目描述
给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。
输入描述:
输入包括一行字符串,其长度不超过1000。
输出描述:
可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。
输入例子:
hellolleh
helloworld
输出例子:
Yes!
No!
解决思路
使用两个指针,一个指向头部,一个指向尾部,判断指向的字符是否相等,不等则false
#include <iostream>
#include <cstdlib>
using namespace std;
bool isReversible(string str) {
int length = str.length();
for(int i=0, j=length-1; i<=j; ++i, --j) {
if(str[i] != str[j]) return false;
}
return true;
}
int main() {
string str;
while(getline(cin, str)) {
if(isReversible(str)) {
printf("Yes!\n");
} else {
printf("No!\n");
}
}
}