给定一个字符串,请问最多删除一个的情况下,能否组成一个回文字符串。
回文字符串:正着读和反着读是一样的字符串。
数据范围:字符串长度满足 ,字符串中仅包含小写英文字母
public class Solution { public boolean palindrome(String str) { // write code here char[] chars = str.toCharArray(); for (int i = 0; i < chars.length; i++) { if (chars[i] != chars[chars.length - 1 - i]) { return false; } continue; } return true; } }
import java.util.*; public class Solution { boolean flag = false; public boolean palindrome (String str) { int left = 0; int right = str.length()-1; while(left < right) { if(str.charAt(left) == str.charAt(right)) { left ++; right --; }else { if(flag) { //说明已经删过一次了 return false; } flag = true; //需要判断一下,删左边好还是删右边好 return palindrome(str.substring(left,right))|| palindrome(str.substring(left+1,right+1)); } } return true; } }