🔲
ABC285-B: Longest Uncommon Prefix 解説
問題
長さ
の文字列 N が与えられます。 S
のそれぞれについて、次の条件を満たす最大の非負整数 i = 1, 2, ..., N-1 を求めてください。 l
l + i \leq N
全てのを満たす整数 1 \leq k \leq l について、 k の S 文字目と k の S 文字目は異なる。 k+i
解説
- ぱっと見問題がわかりにくいが,頑張って読解してコードを書こう(投げやり)
- こういうときは入出力例を見るとイメージしやすい
コード
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
string S;
cin >> S;
for(int i = 1; i <= N-1; ++i){
int ans = 0;
for(int l = 0; l < N; ++l){
if(l + i >= N) break;
if(S[l] == S[l+i]) break;
++ans;
}
cout << ans << endl;
}
}
Discussion