yukicoder - No.430 文字列検索

No.430 文字列検索 - yukicoder

事前に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;
}