質問:文字列がすべての文字列のB(1よりも大きい長さ)に表示されたインデックスに決定されます。あなたは、文字列メソッドIndexOfメソッドを使用することはできません、ストリングなど
インタビューの中で小さなパートナーは、あなたが非常にシンプルで簡単な文字列メソッドIndexOfの、部分文字列を、使用して使用する場合、一見、この問題が発生していますが、これらのメソッドを使用しない場合、どのようにこの要求を実現するために、それ
//アイデア:対応する文字列の方法を用いることができないならば、我々は常に、対応する配列のインデックスを乗り越え再帰関数を使用して、配列に文字列を置くことができ、その後、実際には、多くの人がフロントになりましたと後端インタラクティブ処理され、条件のインデックスプリントを満たしますデータの方法は、再帰的なものを使用している、再帰軽蔑しないでください!
ADOは、問題を解決してみましょう:
<SCRIPT> // 実際には、多くの方法が今のフロントと、再帰的な増加に使用されているデータの対話的な処理の後端部には、再帰的にダウンして見ていないです @ アイデア:私たちは、配列に文字列を変換することができ、文字列に対応する方法を使用することができません、まず、対応するよりも、再帰的な配列インデックスを使用し続け // ランダムな文字 のvar str1は=「adfacddtgjacbasaclsaacdctacw」; // 条件スクリーニング文字 のvar STR2 =「basaclsa」; // 配列に対応する文字列を VAR ARR1 = STR1の.split( '' ); VARの ARR2 = str2.split( '' ); 機能テスト(ARR){ // ループのために、最初にスクリーニングされる最初の配列インデックスARR2は、アラインメントをもたらし書き込む ため(VaRの I 0 =;私は<はarr1.length; Iは++ ){ // もしそうであれば、次の段階を実行する 場合(ARR [0] === ARR1 [I]){ // 示すために、ここで入力します。同じ第1のインデックスARR2同じ文字、文字ARR1インデックス // 同一の最初のインデックスをので、我々はここにありますあなたは、変数numは宣言し、num個の変数は、長さARR2に応じては、インクリメント手放す のvar NUM = 0 関数CCC(ARR){ // 最初のインデックスと同じように、インデックスそれらは、インデックスの背面に越える変数NUM、と結合されているように、彼らは同じであるので、条件が満たされた場合には、インクリメント継続NUM // numがARR1の長さに等しい変数の値が、このとき、この説明の同一ARR1のインデックスインクリメントまで IF([IはARR [NUM] === ARR1 + NUM])を{ IF(NUM - === arr.length 1 ){ にconsole.log( 'インデックスが対象となり' 、I) } NUM ++ // にconsole.log(NUM) CCC(ARR) // 条件が満たされない場合、再帰が繰り出さ } 他{ リターン } } CCC(ARR2である) } } } テスト(STR2) </ SCRIPT>
実際には、の話を再帰的には、私は誰も不慣れではないと思います。例えば、子供の頃は聞いた:山はかつてありました、寺があった山、寺の僧、物語の中で僧侶は山一度、寺院、僧侶があった寺院、物語における僧の山がありました、ありました、かつて山...
実際には、再帰は、操作の過程で自分自身を呼び出すことです。自分自身を呼び出すプログラムは、再帰的プログラミングのスキル(再帰)と呼ばれます。再帰の種類として、アルゴリズムにおけるプログラミング言語広くアプリケーション。プロシージャまたは関数は、直接的または間接的方法自体を呼び出し、通常その定義又は説明に小さな問題を解決するために元の問題と同様層に大規模で複雑な問題であり、唯一の再帰問題解決のプロセスを記述することができる以下のプログラムを必要とする大幅にコードサイズを低減する、計算に必要繰り返されます。
実はこの絵は非常に鮮やかに再帰を表明しました。
まあ、再帰的な知識はほとんど完成導入しました。はい!簡単に言えば、サイクルは返すようになることはありません、と再帰が(理由は終了条件の)そこに戻って行くことがあります。