>验证回文字符串 Ⅱ<
>validPalindrome<
一、解题思路
1、解法一( Java )
解法思路:
单循环判+贪心算法
左右指针对比两边字符是否相同,不同就进行枚举,分别删除左右两边的一个字符,接着用左右指针进行对比。
代码如下:
class Solution {
public boolean validPalindrome(String s) {
int left=0,right=s.length()-1;
while(left<right){
char l=s.charAt(left), r=s.charAt(right);
if(l==r){
++left;
--right;
}else{
return validPalindrome(s,left,right-1)||validPalindrome(s,left+1,right);
}
}
return true;
}
public boolean validPalindrome(String s,int left,int right){
for(int i=left,j=right;i<j;++i,--j){
if(s.charAt(i)!=s.charAt(j)){
return false;
}
}
return true;
}
}
运行结果截图如下:
|