Substring Search(部分文字列検索)
長いテキスト t と文字列 s が与えられたとき、テキスト t の中で文字列 s が出現するすべての場所を探し出す問題です。具体的には、t の中で s と一致する開始位置をすべて求めます。
Input(入力)
入力の最初の行には、テキスト t が与えられます (1 ≤ |t| ≤ )。
続く2行目には文字列 s が与えられます (1 ≤ |s| ≤ |t|)。
Output(出力)
テキスト t の中で s が出現するたびに、その開始位置を昇順に(テキストの先頭から末尾へ向かう順)空白区切りで出力してください。位置の番号付けは 0 から始まります。
Examples(例)
入力 | 出力 |
|---|---|
habababohabo | 2 4 |
barfoobarfoobarfoobarfoobarfoo | 3 9 15 21 |
Explanation(解説)
habababohabo → ha
bababohabo, habababohabobarfoobarfoobarfoobarfoobarfoo → bar
foobarfoobarfoobarfoobarfoo, barfoobarfoobarfoobarfoobarfoo, barfoobarfoobarfoobarfoobarfoo, barfoobarfoobarfoobarfoobarfoo
Constraints
Time limit: 5 seconds
Memory limit: 512 MB
Output limit: 1 MB