给定一个字符串S,只由k种小写字母组成。现在给定一个长度L,要求统计一下S有多少种不同的长度为L的子段(S中连续的几个字符)。

输入 单组测试数据。 第一行两个整数L和k。(L>=1,1<=k<=26,k^L<=2*10^7) 第二行一个字符串S。(1<=|S|<=1000000) 输出 输出一个整数表示答案。

输入样例 1 2 ababab 输出样例 2 解法:暴力即可 代码:

#include<iostream>
#include<string>
#include<set>
using namespace std;
set<string> S;
int main()
{
    int l, k;
    scanf("%d%d", &l, &k);
    string s;
    cin >> s;
    for(int i = 0; i <= s.length() - l; i++){
        string s1 = s.substr(i, l);
        S.insert(s1);
    }
    printf("%lld\n", S.size());
}