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