递归学习(四)--判断回文字符串--java实现

使用String的API中的charAt(int index)函数来判断两端对称位置上的字符是否相等。 java

使用递归 函数

递归的结束须要简单情景 code

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));
	}
}
相关文章
相关标签/搜索