使用String的API中的charAt(int index)函数来判断两端对称位置上的字符是否相等。
使用递归
递归的结束需要简单情景
1. 字符串长度可能会奇数或偶数:
- 如果字符串长度是奇数,判断到最后,左右两个index会重合到一起,但其不影响回文。当左右两个index相等时,表示是回文,返回true
- 如果字符串长度是偶数,判断到最后,左边的index会在右边index的右边,也不影响回文,返回true
- 也就是 l >= r 的情况
2. 如果检查到两端两个字符不相同。则说明此字符串不是回文,直接返回false,不需要继续检查
public class Palindrome {
public static boolean palindrome(String str,int l, int r){
if(l >= r){
return true;
}
if(str.charAt(l)==str.charAt(r)){
return palindrome(str, ++l, --r);
}else{
return false;
}
}
public static void main(String[] args){
String str = "aabaa";
System.out.print(palindrome(str,0,str.length()-1));
}
}