設計思想:
分兩種情況:單個字符或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 + "不是回文串"); } }
運行結果截圖:
編程總結分析:
遞歸是函數調用自身,要想運用好遞歸,需要找到一個問題中重復計算的部分。