[680] 验证回文串 II

36 阅读1分钟
/*
 * @lc app=leetcode.cn id=680 lang=javascript
 *
 * [680] 验证回文串 II
 */

// @lc code=start
/**
 * @param {string} s
 * @return {boolean}
 */
var validPalindrome = function (s) {
  // 判断是不是相等的函数
  function isPalindrome(left, right) {
    while (left < right) {
      if (s[left] !== s[right]) {
        return false
      }
      left++
      right--
    }
    return true
  }
  let left = 0, right = s.length - 1
  while (left < right) {
    if (s[left] !== s[right]) {
      // 如果当前不相等就拿后面一个跟原来的右比较是不是相等,是就说明可以最多删除一个
      return isPalindrome(left + 1, right) || isPalindrome(left, right - 1)
    }
    left++
    right--
  }
  return true
}
// @lc code=end