yukicoder - No.430 文字列検索
事前に1文字〜10文字分のすべての部分文字列をカウントしてmapに入れておいた。 なんか解説みて気づいたけど想定解とは違うのか。
signed main() { string S; int M; map<string, int> mp; cin>>S>>M; for (int i=0;i<S.size();i++){ for(int j=1;j<=10;j++){ if(S.size()-i>=j) mp[S.substr(i, j)]++; } } ll res = 0; for(int i=0;i<M;i++){ string C; cin>>C; res += mp[C]; } cout<<res<<endl; return 0; }