题目传送门
题目描述
子串是连续的。
牛可乐 最喜爱的字符串是 。
牛可乐得到了一个纯数字的字符串 ,他想知道在可以任意打乱
顺序的情况下,最多有多少个不同的子串为
当两个子串 满足
或
输入描述:
第一行,一个正整数 |S|,表示 S 的长度。
第二行,一个字符串 S,其字符集为 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。
保证
输出描述:
输出一行,一个整数表示答案。
输入
11
11451419266
输出
1
说明
一种最优打乱方案为 “11451492616”,有一个子串为 “616” 。
题解
和
- 要让
子串最多一定是
,这样后面的串可以用前面的
,数量为
。(可以理解为前面一个
后面
循环)
- 时间复杂度
AC-Code
#include <bits/stdc++.h>
using namespace std;
char s[200005]; int cnt[10], n;
int main() {
scanf("%d%s", &n, s);
for (int i = 0; i < n; ++i) ++cnt[s[i] - '0'];
cout << min(cnt[6] - 1, cnt[1]);
return 0;
}