给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: s = “aba”
输出: true
示例 2:
输入: s = “abca”
输出: true
解释: 你可以删除c字符。
示例 3:
输入: s = “abc”
输出: false
/*** @param {string} s* @return {boolean}*/var validPalindrome = function (s) {let l = 0, r = s.length - 1;while (l < r) {if (s[l] !== s[r]) { // 指向的字符不一样,还不能死刑// 转为判断删掉一个字符后,是否回文return isPali(s, l + 1, r) || isPali(s, l, r - 1);}l++;r--;}return true;};function isPali(str, l, r) { // 判断str是否回文while (l < r) {if (str[l] !== str[r]) { // 指向的字符不一样,不是回文串return false;}l++; // 指针相互逼近r--;}return true; // 始终没有不一样,返回true}

