Given a non-empty string s
, you may delete at most one character. Judge whether you can make it a palindrome.
Example 1:
Input: "aba" Output: True
Example 2:
Input: "abca" Output: True Explanation: You could delete the character ‘c‘.
Note:
- The string will only contain lowercase characters a-z. The maximum length of the string is 50000.
题目思路就是正常的用two pointers去遍历s, 然后如果有不一样的, 要么把l + = 1, 要么把r -= 1 , 然后如果这两个中有一个是palindrome, 那么就符合.
Code:
class Solution: def palindrome2(self, s): # len(s) >= 1 l, r = 0, len(s)-1 def helper(l, r, s): while l < r: if s[l] == s[r]: l += 1 r -= 1 else: return False return True while l <r: if s[l] == s[r]: l += 1 r -= 1 else: return helper(l+1, r, s) or helper(l, r-1, s) return True
原文地址:https://www.cnblogs.com/Johnsonxiong/p/9479037.html
时间: 2024-10-11 12:27:07