0%

1906-字段统计

给定一个字符串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
解法:暴力即可
代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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());
}