
[题目链接](剑指 Offer II 019. 最多删除一个字符得到回文 - 力扣(LeetCode) (leetcode-cn.com))
思路如果左右两个字符不同,选择删除其中一个,判断剩下的字符串是否为回文串。删除左边字符后不构成回文串,再看看删除右边那个字符后是否构成回文串。 代码
class Solution {
public boolean isValidPalindrome(String s1,String s2) {
if(s1.equals(s2)) return true;
return false;
}
public boolean validPalindrome(String s) {
for(int left = 0, right = s.length()-1; left <= right;left++,right--) {
if(s.charAt(left) != s.charAt(right)) {
String now1 = new StringBuffer(s).deleteCharAt(left).toString();
String now2 = new StringBuffer(now1).reverse().toString();
if(isValidPalindrome(now1,now2)) return true;
now1 = new StringBuffer(s).deleteCharAt(right).toString();
now2 = new StringBuffer(now1).reverse().toString();
if(isValidPalindrome(now1,now2)) return true;
else return false;
}
}
return true;
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)