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
  1. 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