AOJ0528 Common Sub-String
文字列をずらしてくらべて最大値更新していけば解ける
#include <iostream> #include <string> #include <algorithm> using namespace std; int main(){ string a,b; int crtl,alen,blen,ans; while (cin >> a){ cin >> b; ans = 0; alen = a.size(); blen = b.size(); for(int i = 0; i < alen; i++){ b = " " + b; b = b + " "; } for(int i = 0; i < alen + blen; i++){ crtl = 0; for(int j = 0; j < alen; j++){ if(a[j]==b[i+j]) crtl++; else crtl = 0; ans = max(crtl,ans); } } cout << ans << endl; } return 0; }