遞歸學習(四)--判斷迴文字符串--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));
	}
}
相關文章
相關標籤/搜索