遞歸判斷迴文

  • 題目介紹:

          「迴文」是指正着讀、反着讀都同樣的句子。好比「我是誰是我」使用遞歸算法檢測迴文的算法描述以下:java

          A single or zero-character string is a palindrome.Any other string is a palindrome if the first and last characters are算法

          the same, and the string that remains, excepting those characters, is a palindrome.編程

  • 設計思想:

          1.判斷字符串長度(n),當字符串長度爲0跟1時便是迴文。spa

          2.若與1不符,則咱們須要對字符串進行遞歸判斷,即拿第(n-1)個字符,第a(length-n)個字符進行比較,若相同則n-1,再比較,如此循環往復,就會出現一個結束點。設計

          3.結束點就是當n爲0或爲1,若這樣便是迴文。code

          4.遞歸進行的條件是:若第(n-1)個字符,第a(length-n)個字符相同,則將字符串長度-1,若不知足,則直接退出。blog

  • 代碼以下
package javatask;

import java.util.Scanner;

public class Palindrome {
        static Scanner in=new Scanner(System.in);
        static char str[] = new char[99];
        public static void main(String [] args) 
        {
            System.out.println("請輸入字符串");
            String a;
            a=in.next();
            if(Palindrome(a,a.length()))//若是是迴文
                System.out.println("It's a palindrome");
            else    //若是不是迴文
                System.out.println("It's not a palindrome");
        }
    static public boolean  Palindrome(String a,int n)
    {
        int length=a.length();
        if(n==1||n==0)
            return true;
        else 
        {
            if (a.charAt(n-1)==a.charAt(length-n)) //第一個字符與最後一個字符比較
                return Palindrome(a,--n);//利用遞歸反覆判斷
            else 
                return false;//不是迴文
        }
        
    }
}
  • 運行結果截圖

          

          

          

  • 編程總結分析

           這道題比較困難的點呢就是怎麼用遞歸來判斷以及在字符串如何提取某個字符來操做。遞歸

相關文章
相關標籤/搜索