经典算法-递归
参考:
六大算法之一:递归 - zw6161080123的博客 - CSDN博客
题目:valid-palindrome
判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写
例如:"A man, a plan, a canal: Panama"是回文
"race a car"不是回文
注意:
你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。
针对这个问题,我们定义空字符串是回文
public class Solution {
public boolean isPalindrome(String s) {
s=s.toLowerCase();
if(s.length()==0||s.length()==1){
return true;
}
int i=0;
int j=s.length()-1;
while(i<j){
if(!isRight(s.charAt(i))){
i++;
continue;
}
if(!isRight(s.charAt(j))){
j--;
continue;
}
if(s.charAt(i)==s.charAt(j)){
i++;
j--;
continue;
}else{
return false;
}
}
return true;
}
private boolean isRight(char c){
if((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z')){
return true;
}
return false;
}
}
解题思路:
递归的思想,首先将字符串转换成小写,然后将两边向中间遍历,将i和j处的值作对比。


浙公网安备 33010602011771号