2 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long ll ; ll T=1;const ll N=1e5+5; ll a[N];ll n;ll ans;ll x,y;string s; map<char,ll>vis; bool check(ll l,ll r){ for(ll i=l;i<=r;++i){ if(vis[s[i]]>x)return 0; }return 1; } ll cnt; void solve(){ cin>>s;n=s.size(); s=" "+s; cin >>x; ll l=1;ll r=1; while(r<=n){ vis[s[r]]++; while(vis[s[r]]>x){ vis[s[l]]--; l++; } cnt+=r-l+1; r++; } cout<<cnt; } int main(){ while(T--)solve(); return 0; } -
0
import sys input = lambda:sys.stdin.readline().strip() s = input() k = int(input()) n = len(s) left = 0 from collections import defaultdict count = defaultdict(int) res = 0 for right in range(n): count[s[right]] += 1 while count[s[right]] > k: count[s[left]] -= 1 left += 1 res += (right - left + 1) print(res)
- 1
信息
- ID
- 679
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 59
- 已通过
- 25
- 上传者