给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: ``` 输入: "aba" 输出: True ``` 示例 2: ``` 输入: "abca" 输出: True 解释: 你可以删除c字符。 ``` 注意: 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。 来源:[力扣(LeetCode)](https://leetcode-cn.com/problems/valid-palindrome-ii)
Activity
CodeRookie262 commentedon Feb 3, 2021
yokuray commentedon Feb 3, 2021
实现不错,这种题普遍的思想是从两侧开始逐渐往中间收窄区间,难出其右。独立出一个方法专门用于判断回文,减少了代码冗余。利用高低位指针作为循环的继续条件,还减少了中位变量。👍
这道题很巧妙,相较于单纯的判断是否回文,加上了“可以删除一个元素”的条件后,情况变得复杂。我一开始在遇到不相等的元素时只计算:
没将二者结合起来,结果遇到:
这个流氓直接给我返回了
false(ˉ▽ˉ;)...CodeRookie262 commentedon Feb 3, 2021
嗯嗯,这道题难点在非回文字符串如何进行取舍处理 @Mirai39