再帰 - 文字列が回文かどうかを決定します

まず、文字列が再帰的方法によって実装、パリンドロームであるかどうかを決定します。

第二に、一般的な考え方:

1、入力文字列。

図2に示すように、前及び次いで後の文字列に格納されている対応する文字列を比較します。

図3は、最後に残った1または0文字出会うまで、パリンドロームです。

第三に、ソースコード:

1つの パッケージorg.yuan.Day2。
2  
3  インポートjava.util.Scanner。
4  
5  パブリック クラス回文{
 6         
7          パブリック 静的 ボイドメイン(文字列[]引数){
 8              のSystem.out.println( "请输入一个字符串:" )。
9              スキャナSC = 新しいスキャナ(System.in)。
10              文字列S = sc.next()。
11              ブール huiwen =回文(S、0 、s.length())。
12              のSystem.out.println(huiwen)。
13              sc.close()。
14          }
 15          パブリック 静的 ブール回文(S文字列、int型 I、int型の長さ){
 16              IF(長さ2 1 == * I-2 * Iは、長さ== 0 ||。 17。                 リターン trueにする ; // 最後にあれば満足残りの文字数が1または0であり、それはパリンドロームであり、
18は             IF((s.toCharArray()[I]!= s.toCharArray()[I-長-1])||(I> = 1長さ- -i)){ // 対応する文字の前後の文字列に文字列は、等しい
19。                 復帰 はfalse ;
 20              }
 21で             リターン I ++が回文(S、長さ); // 再帰
22          }
23  }
 24     

IVの概要:

それは、同じ手順を繰り返し、自分自身を再帰的に呼び出しますが、この再帰関数を終了することができます制限があります。再帰が大きくコードの量を減少させる、小さな問題に複雑な問題であることができます。

 

おすすめ

転載: www.cnblogs.com/tianwenjing123-456/p/11583879.html