所谓回文字符串,就是一个字符串,从左到右读和从右到左读完全相同的字符串。比如"123321" 、 "aabaa"都是回文,但"123"和"aabb"就不是回文。规定空串为回文。 Solution类中有一个函数isPalindrome,其功能是判断以'@'结尾的字符串s是否为回文,若是返回true,若不是返回false。 请给出函数bool isPalindrome(char *s)的实现。
Solution类声明如下:
class Solution
{
public:
/*
* 判断以'@'结尾的字符串s是否为回文。
* 如果是回文,返回true;不是回文,返回false。
*/
bool isPalindrome(char *s);
};
请实现Solution类的成员函数isPalindrome。
裁判测试程序样例:
#include <iostream>
using namespace std;
class Solution
{
public:
/*
* 判断以'@'结尾的字符串s是否为回文。
* 如果是回文,返回true;不是回文,返回false。
*/
bool isPalindrome(char *s);
};
int main()
{
Solution obj;
char ss[100];
cin >> ss;
if (obj.isPalindrome(ss)) {
cout << "YES\n";
} else {
cout << "NO\n";
}
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例1:
aabaa@
输出样例1:
YES
输入样例2:
aabb@
输出样例2:
NO
废话不说上代码:
bool Solution::isPalindrome(char *s){
char n=0;
char *p = s,*q = s,*t = s;
for(t;*t != '@';t++)
n++;
n--;
q = q + n;
while(*p == *q){
p++;
q--;
}
if(p>=q)
return true;
else
return false;
}