(問題 7) 同じ部分文字列 Clojure(Beta)編(paizaランク S 相当)
問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
問題
下記の問題をプログラミングしてみよう!
(部分文字列の一致判定について)
部分文字列の一致判定も問題 5 と同じような方法で計算が出来ます。
実際に行ってみましょう。
(問題)
長さ N の英大文字列 S = S_1S_2S_3...S_N が与えられます。次を満たす正整数 k の最大値を求めてください。ただし、存在しない場合は 0 を出力してください。
S_{i,i + k - 1} = S_{j,j + k - 1} となる i, j (1 ≦ i < j ≦ N - k + 1) が存在する。ただし、S_{L,R} はS の L 文字目から R 文字目までの部分文字列を意味する。
- 入力される値
-
入力は以下のフォーマットで与えられます。
N
S
- 1 行目には 1 つの整数 N が与えられます。
- 2 行目には 1 つの文字列 S が与えられます。
- 入力は合計で 2 行からなり、入力値最終行の末尾に改行が 1 つ入ります。
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
標準入力からの値取得方法はこちらをご確認ください
- 条件
-
すべてのテストケースにおいて、以下の条件をみたします。
- 2 ≦ N ≦ 50000
- S は長さ N の英大文字列
- 入力例1
-
28
MYNAMEISTAROYOURNAMEISHANAKO
問題一覧へ戻る