タグ付けされた質問 「recursion」

再帰に関する質問については、メソッドまたは関数をそれ自体から呼び出す方法。

7
再帰は、プログラミング時に「あまりにも賢い」ことのインスタンスですか?
私はいくつかの本を読んだ経験から学んだことですが、コードを最適化できないほどに最適化したり、チームで作業したり、作業しているときでも、非常に高速で非常に複雑な問題の解決策を思いついたりすることは望ましくありません。あなた自身で、しばらくしてあなたの賢い解決策を理解する必要があります。 私の質問は、再帰は同じように扱われるべきですか?平均的なプログラマーは再帰を簡単に理解できるので、再帰を免責して使用すべきですか、それとも平均的なプログラマーは再帰をあまりよく理解せず、チーム全体の生産性のために再帰から離れるべきですか? 「再帰を理解していないプログラマーは一粒の価値がないので、心配しないでください」という簡単な答えがあることは知っていますが、皆さんが実際に体験したい経験があるかどうか疑問に思っていました私が述べたばかりの意見よりも問題を明らかにするであろう共有。

1
パターンを文字列に挿入するすべての可能な方法を見つける
私はしばらくの間この問題について考えていましたが、再帰的な解決策しか見つけることができませんが、それを行うための動的なプログラミング方法があると感じていますが、それを理解することはできません。これは私が知らない有名な問題ですか? Q:文字列とパターンを指定して、パターンの文字を(順番に)文字列と照合する一意の方法の数を返します。 明確化:一致を見つけるには、パターンの最初の文字を取り、文字列内で最初に一致する文字を見つけ、次にパターンの2番目の文字を取り、以前に一致した後の文字列の最初の一致文字と一致します。キャラクター。 例1(4件一致): 文字列:DABBCDDE パターン:ABD 可能な方法(太字はパターンが文字列と一致する場所です): D AB BC D DE D A B B C D DE D AB BCD D E D A B B CD D E 例2(0件一致): 文字列:ABC パターン:BCA (B、Cに一致し、文字列の最後にいる場合、前の文字に戻って一致することはできません) 再帰的なアプローチでは、パターン(pIndex)だけでなく、文字列(sIndex)の現在のインデックスを追跡するメソッドがあります。string [sIndex]がpattern [pIndex]と一致する場合は、メソッドを再度呼び出して、sIndexとpIndexを増やします。そうでない場合-sIndexを増やして、もう一度一致を見つけるようにしてください。再帰呼び出しの戻り値が加算されるため、メソッドは合計数を返します。(一致は1を追加、一致は0を追加) 基本ケース: pIndexがパターンの長さより大きい場合、0を返します。 sIndexが文字列の長さより大きい場合、1を返します(一致が見つかりました!) 他にどんな解決策がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.