回文串是指以中心对称的字符串,即以中心字符对折,前后元素对应相等。基于此定义,可采用双指针方法,分别指向字符串的起始和末尾元素,然后进行比较,若不等则返回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;
    }
};