验证回文字符串Ⅱ
问题陈述
给定一个非空字符串 s
,最多删除一个字符。判断是否能成为回文字符串。
算法实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution{ public boolean validPalindrome(String s){ for(int i=0,j=s.length()-1;i<j;i++,j--){ if(s.charAt(i)!=s.charAt(j)){ return isPalindrome(s,i+1,j)||isPalindrome(s,i,j-1); } } return true; } public boolean isPalindrome(String s,int i,int j){ while(i<j){ if(s.charAt(i++)!=s.charAt(j--)){ return false; } } return true; } }
|