found"(追記)「xが大きくなっても指定された文字列を高‌​速に探し出せるようにする」とありますが、具体的にどれくらいの大きさのものをどれくらいのスピードで探し出したいのか、具体的なゴールはありますか?に対する回答ですが、xが1000位でも必ず1秒以内で結果が出力されるように変更したいです。it!"と表示されるまで何分も待たないといけません。foundになるのか、理屈がよくわかりませんでした。foundが決まるのでしょうか?もうちょっと具体的に教えてください。縦読みや横読みのように、ary1には「あかまきがみあおまきがみきまきがみ」という文字列が隠されています。ary1[11]から出発して、ary1[1‌​2],ary1[23],ary1[34],ary1[35],ary1[36],...,ary1[97]と辿れば指定した文字列が見つかります。ary2はどの場所から‌​出発し、どのように縦横(右と下)動いても指定した文字列は見つかりません。具体的な目標について追記しました。4:081dpタグですが、英語版でもdynamic-programmingですし、日本語版なら「動的計画法」がいいのではと思います。それはそれとして、解の一つが動的計画法を使ったものであったというだけで、動的計画法を前提とした質問というわけではないように思うのですが・・・。票3動的計画法でどうでしょう。ARY1]に変更してもすぐに求まりますね。|0上手く実装できていないのですが、次のような考え方で高速化できそうです。1ある程度意味を持つ文字列※を探すので、指定された文字列の中に使用頻度の少ない文字があるはずなので、その文字を探す。※指定された文字列が「おらおらおらおらおら」のようなものではないとする。2行列の中から、使用頻度の少ない文字を見つけ、その前の文字を左と上から、その後の文字を右と下から探していく。質問の例だと、「か」(または「お」)を行列の中から見つけ、その前の文字「あ」が左または上にあるか、その後の文字「ま」が右または下にあるか調べていくことになる。(上記アルゴリズムの弱点)行列に使用頻度の少ない文字が多数含まれている場合、あまり有用ではない。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。