【解決方法】2 つの文字列を受け入れ、最初の文字列内で 2 番目の文字列が出現するすべてのインデックスをリストとして返す WAP。

プログラミングQA


この問題を理解できません….理解させて、この問題を解決するプログラムを書いてください

私が試したこと:

この質問にどう取り組んでいいのかわかりません。

解決策 1

課題を注意深く読み始めてください。あなたが私たちに与えた「概要」とは異なる場合があります。
ある文字列が別の文字列の中に出現する回数をすべて見つける必要があります。 したがって、「こんにちは、マイク、こんにちは、ジェーン、こんにちは、ピーター」の中で出現する「こんにちは」をすべて検索すると、次の 3 回存在します。hello マイク、 hello ジェーン、 hello Peter” であり、インデックスは部分文字列が出現する文字列の先頭からの文字数です。

hello Mike, hello Jane, hello Peter
^           ^           ^
|           |           |
|           |            --- 24
|            --- 12
--- 0

次に、「これを手動で行うにはどうすればよいでしょうか?」と自問してください。
文字列を調べて「h」を探し、その後に「e」、「l」などが続いているかどうかを確認します。 存在する場合は、部分文字列が見つかったことになるので、開始位置をメモしておきます。
いずれにせよ、次の文字に移動して再度確認することになります。

従う必要があるルールを頭の中で正確に検討し、いくつかの異なる文字列や部分文字列で手動で試してみます。 考えられるすべてのケース (空の文字列、完全一致、一致なしなどを含む) をカバーするルールがある場合、それをコンピューター化する方法を検討します。

開始する際に問題が発生する場合は、次のことが役立つかもしれません。 問題を解決するコードの書き方、初心者ガイド[^]

解決策 2

見る 組み込み型 — Python 3.10.10 ドキュメント[^] 文字列の使用とアクセスについては、「文字列の使用と文字列へのアクセス」を参照してください。

解決策 3

def find_indices(str1, str2):
インデックス = []

range(len(str1)) 内の i の場合:
str1の場合[i:i + len(str2)] == str2:
インデックス.追加(i)
インデックスがそうでない場合はインデックスを返します -1

コメント

タイトルとURLをコピーしました