leetcode(js)-每日一练之 验证回文串Ⅱ
主要思路:
- 首先跟题库编号125 验证回文字符串的思路相同
- 在left(++)和right(–)指针行进过程中,若比较后发现不同,给一次机会,把left++与right 比较 或 right-- 与left 比较,如果有一个返回true,则次字符串珍惜了这次机会,是一个回文字符串,否则仍不是回文字符串
- 为什么不left-- right++呢 ,因为在每次比较 都要确定左右两边的字符数相同,才符合题意
var validPalindrome = function(s) {
function isHui(left, right) {
while (left < right) {
if (s[left] != s[right]) {
return false
}
left++;
right--;
}
return true;
}
let left = 0;
let right = s.length - 1;
while (left < right) {
if (s[left] != s[right]) {
return isHui(left + 1, right) || isHui(left,right - 1);
}
left++;
right--;
}
return true;
};