回文串是指以中心对称的字符串,即以中心字符对折,前后元素对应相等。基于此定义,可采用双指针方法,分别指向字符串的起始和末尾元素,然后进行比较,若不等则返回false,若相等则同时向中间移动。当左指针大于等于右指针时结束比较,若此前元素均对应相等,则返回true。(左右指针相等时说明原字符串为奇数串,而最中间元素是共有的,故无需再比较,直接返回true)
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
bool judge(string str) {
// write code here
int len=str.length();//长度
int i=0,j=len-1;//双指针,一个指向第一个元素,另一个指向最后一个元素
if(len==0)
return false;//空串返回false
while(i<j)
{//前后指针同时进行比较并移动
if(str.at(i)==str.at(j))
{
++i;
--j;
}
else
return false;
}
return true;
}
}; 


京公网安备 11010502036488号