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(解説)

  1. habababohabo → habababohabo, habababohabo

  2. barfoobarfoobarfoobarfoobarfoo → barfoobarfoobarfoobarfoobarfoo, barfoobarfoobarfoobarfoobarfoo, barfoobarfoobarfoobarfoobarfoo, barfoobarfoobarfoobarfoobarfoo

Constraints

Time limit: 5 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue