判斷一個字符串是否為回文串


設計思想:

分兩種情況:單個字符或0個字符是回文串;字符串長度大於1時,從字符串首尾兩端先中間夾逼進行字符比較並遞歸

 

源程序代碼:

//用遞歸實現判斷一個字符串是否為回文串

import java.util.Scanner;
public class Palindrome 
 {   //判斷是否為回文串   in型參數代表字符串起止位置
    public static boolean isPalindrome(String s,int i,int j){ 
         //遞歸    
        if(i==j||s.length()==0||s.length()==1)
            return true;
        if(s.charAt(i) == s.charAt(j))
       {
           i++;
           j--;
           return isPalindrome(s,i,j);
       }
        else return false;
            }
            /* return (s.charAt(i) == s.charAt(j)) && isPalindrome(s,i+1,j-1);*/  
            
    public static void main(String[] args){              
        Scanner in=new Scanner(System.in);             
        System.out.println("請輸入一個字符串:");
        String str = in.nextLine();
        int i = 0;      
        int j = str.length() - 1;          
        if(isPalindrome(str,i,j)) 
            System.out.println(str + "是回文串");   
        else System.out.println(str + "不是回文串");    
    }  
}             

 運行結果截圖:

 

 

 

 

 


編程總結分析:

遞歸是函數調用自身,要想運用好遞歸,需要找到一個問題中重復計算的部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM