回文递归小测总结
题目:使用递归方式判断某个字串是否是回文( palindrome )
设计思想:判断一段字符串是否是回文,就要判断第一个字符和最后一个字符是否相等,然后再判断第二个和倒数第二个字符是否相等依次类推,所以要用到递归,首先要判断递归结束的条件,然后化大为小,依次比较对应字符是否相等。如果出现不相等的情况,该字符串就不是回文。
package palindrome; import java.util.Scanner; public class str { public static void pd(String a,int n) { if(a.charAt(a.length()-n)==a.charAt(n-1)) { if(2*n-1-a.length()==0||2*n-1-a.length()==1) System.out.println("true"); else pd(a,n-1); } else System.out.println("false"); } public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.println("请输入字符串:"); String a=in.next(); int n=a.length(); pd(a, n); } }
编程总结分析:在递归的编程中首先要判断出结束语句,例如本题目中在对应字符相等得条件下,要是最后相减得1或者0,该字符串判断完成,可以结束,每次递归n的次数要减1,以缩小判断范围。