1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 線形探索メニュー応用編(言語選択)
  4. 問題一覧 Rust(Beta)編
  5. 部分文字列

線形探索メニュー応用編のサムネイル
部分文字列 (paizaランク B 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

文字列 s, t が与えられます。

s の文字数を n とおくと、 s の部分文字列は n * (n + 1 ) / 2 種類存在しますが、そのうち t と等しいものの個数はいくつありますか。

部分文字列とは、l ≦ r を満たす l, r について s_l, s_{ l + 1 }, ..., s_r をそのまま結合した文字列を指します。また、 l, r のどちらか一方が異なれば違う部分文字列として扱います。たとえば s= "abcabc" , t= "abc" であるとき、(l, r)=( 1, 3 ), ( 4, 6 )で s の部分文字列と t が等しくなります。

入力される値

s
t


・ 1 行目に、文字列 s が与えられます。
・ 2 行目に、文字列 t が与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

s の部分文字列のうち、 t と等しいものの個数を出力してください。また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 1 ≦ s の文字数 ≦ 100
・ 1 ≦ t の文字数 ≦ 100
・ t の文字数 ≦ s の文字数

入力例1

tyjq
tyjq

出力例1

1

入力例2

mj
mj

出力例2

1

入力例3

x
x

出力例3

1

問題一覧へ戻る

ページの先頭へ戻る