Skip to content
On this page

680. 验证回文字符串 ⅱ

原题链接:LeetCode 680. 验证回文字符串 ⅱ

题目描述

给你一个字符串 s最多 可以从中删除一个字符。

请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false

示例 1:

  • 输入: s = "aba"
  • 输出: true

示例 2:

  • 输入: s = "abca"
  • 输出: true
  • 解释: 你可以删除字符 'c' 。

示例 3:

  • 输入: s = "abc"
  • 输出: false

提示:

  • 1 <= s.length <= 105
  • s 由小写英文字母组成

难度: Easy


题解代码

javascript
var validPalindrome = function (s, count = 0) {
  let left = 0, right = s.length - 1
  while (left < right) {
    if (s[left] !== s[right]) {
      if (count > 0) return false
      return validPalindrome(s.slice(left + 1, right + 1), count + 1) || validPalindrome(s.slice(left, right), count + 1)
    } else {
        left++
        right--
    }
  }
  return true
}

技术文档集合