题目:
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: "aba"
输出: True
示例 2:
输入: "abca"
输出: True
解释: 你可以删除c字符。
注意:
字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome-ii
解答:
class Solution { public boolean validPalindrome(String s) { for (int start = 0, end = (s.length() - 1); start < end; start++,end--) { if (s.charAt(start) != s.charAt(end)) { // 去掉一个,然后继续 String s1 = s.substring(start, end); boolean bol1 = validPalindrome1(s1); String s2 = s.substring(start + 1, end + 1); boolean bol2 = validPalindrome1(s2); boolean bol = bol1 || bol2; return bol; } } return true; } public boolean validPalindrome1(String s) { for (int start = 0, end = (s.length() - 1); start < end; start++,end--) { if (s.charAt(start) != s.charAt(end)) { return false; } } return true; } }
emmm 居然三个月前解答过。。这次解答前发现有点迷糊,看了眼解题思路写的。