CONNLY-J / cultivate

0 stars 0 forks source link

回文字符串验证:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 #2

Open CONNLY-J opened 4 years ago

CONNLY-J commented 4 years ago
/**
 * @param {string} s
 * @return {boolean}
 */
var validPalindrome = function(s) {
let i = 0;
let j = s.length-1;
while(i<j){
    if(s[i] != s[j]){
        return palindrome(s,i,j-1) || palindrome(s,i+1,j)
    }
    i++;
    j--;
}
return true
};
var palindrome = function(s,i,j){
    while(i<j){
        if(s[i] != s[j]){
            return false;
        }
        i++;
        j--;
    }
    return true
}

解题思路: 回文字符串:正读和反读都一样 判断回文字符串:初始化游标i和j,代表首位和末位,i=0,j=s.length-1; 循环,若s[i]=s[j],则为回文字符串,若不相等则不是回文字符串 本题:若s[i]=s[j],则游标移动,直到相遇,则为回文字符串; 若s[i]!=s[j],则删除左边或者右边,然后转为回文字符串判断函数Palindrome判断是否是回文字符串