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