题目链接 https://ac.nowcoder.com/acm/contest/3002/H
1. 分析
可以考虑先把0和1的下标存储下来,再求解包含最多图片说明 个0(1)的子字符串的最长长度,要特判全0(1)的情况
2. 代码

#include<bits/stdc++.h>
#define FULL(x,y) memset(x,y,sizeof(x))
#define ll long long
using namespace std;

int n,k;
string s;
unordered_map<char,vector<int>> um;

int main() {
    cin>>n>>k;
    cin>>s;
    for(int i=0;i<n;i++) {
        um[s[i]].push_back(i);
    }
    if (!um['0'].size() || !um['1'].size()) {
        cout<<n;
        return 0;
    }
    int ans=0;
    for(auto a:um) {
        vector<int> v=a.second;
        int len=v.size();
        for(int i=0;i<len;i++) {
            int l=(i==0?0:v[i-1]+1);
            int r=(i+k>len-1?n:v[i+k]);
            ans=max(ans,r-l);
        }
    }
    cout<<ans;
    return 0;
}