問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
長さ M の 2 つの異なったタグの組で囲まれた部分を、ある長さ N のテキストデータから抽出しようとしています。
1 行目に < と > で囲まれた半角英数字のタグがスペース区切りで開始,終了タグの順で入力されます。
2 行目に抽出を行う対象のテキストデータが入力されます。テキストデータは半角英数字とタグのみで構成されています。
抽出の手順は
1.テキストデータの先頭から、開始タグを見つけます。
2.開始タグ末尾から終了タグを探します。
3.開始タグから終了タグまでの間の文字列を出力します。もし、文字列が存在しない場合は<blank>と出力します。
4.終了タグの末尾を先頭として1.から再度繰り返します。
5.テキストデータの末尾に到達したら終了します。
例えば
<abc> <xyz>
hoge<abc>piyo<xyz>aaa<abc>piyopiyo<xyz>
という入力がされた場合、開始タグ<abc>、終了タグ<xyz>とし、二行目のテキストデータの先頭から<abc>を探します。
5文字目に出現したので開始タグの末尾10文字目から<xyz>を探します。
14文字目に出現したので開始タグ末尾10文字目から終了タグの先頭の13文字目の文字列を
piyo
と出力します。
文字列はまだ続いているので終了タグの末尾から再度開始タグを探し始めます。同じ手順を繰り返し
piyopiyo
と出力します。テキストデータの末尾に到達したので終了します。
入力は以下のフォーマットで与えられます。
tag_a tag_b
S
・ 1 行目に半角スペースで区切られた 2 つの <> で囲まれた開始タグと終了タグが入力されます。2 つの文字列は同じものは入力されません。
・ 2 行目に抽出処理を行う文字列データ S が入力されます。必ず 1 組以上のタグが含まれ、タグは片方のみ出現することはありません。
・ それぞれの文字列は半角英数字とタグを表す < と > のみからなります。< と > はタグ以外では出現しないものとします。
テキストデータに含まれる2つの文字列で囲まれた部分を出現した順に改行して出力してください。
もし、囲まれていない場合は<blank>という文字を出力してください。
全てのテストケースにおいて以下の条件を満たします。
・ 3 ≦ M ≦ 100 (タグの囲い文字<>を含み最低3文字以上)
・ 6 ≦ N ≦ 5000
piyo
xxxx
zzz