给定一个字符串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());
}