[leetcode/lintcode 题解] 有效回文 II · Valid Palindrome II
【题目描述】
【样例】
输入: s = "aba" 输出: true 解释: 原本就是回文串
输入: s = "abca" 输出: true 解释: 删除 'b' 或 'c'
输入: s = "abc" 输出: false 解释: 删除任何一个字符都不能使之变成回文串
【题解】
class Solution { public boolean validPalindrome(String s) { int left = 0, right = s.length() - 1; while (left < right) { if (s.charAt(left) != s.charAt(right)) { break; } left++; right--; } if (left >= right) { return true; } return isSubPalindrome(s, left + 1, right) || isSubPalindrome(s, left, right - 1); } private boolean isSubPalindrome(String s, int left, int right) { while (left < right) { if (s.charAt(left) != s.charAt(right)) { return false; } left++; right--; } return true; } }
【更多参考答案】
https://www.jiuzhang.com/solution/valid-palindrome-ii/?utm_source=sc-bky-zq
浙公网安备 33010602011771号