字节跳动ZJ3->编程题二

编程题2

http://www.nowcoder.com/questionTerminal/dcc301bc11a7420b88afdbd272299809

1. 思路

  1. 做法是控制满足条件的区间大小
  2. 编码思路来源于nbgao,下面是加了注释的源代码

2. 源代码

#include <bits/stdc++.h>
using namespace std;

int main(){
    string s;
    int n=0, m=0;
    cin>>n>>m;
    cin>>s;
    int l=0, r=0, a=0, b=0, Max=0;//控制左右移动区间
    for(;r<=n;r++){//r右边界一直移动
        if(s[r]=='a')//当前为a 则a数量++
            a++;
        else
            b++;//为b 则b数量++
        if(a>m && b>m){//a超出m的数量 并且b超出m数量的这一瞬间
            Max = max(Max, r-l);//确定当前区间大小
            if(s[l]=='a')//查看左边第一个是a还是b 准备区间右移一格 同时去掉积累量 再进行循环查看
                a--;
            else
                b--;
            l++;
        }
    }
    Max = max(Max, r-l);
    cout<<Max<<endl;
    return 0;
}

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
2022-12-09 21:15
清华大学_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-02 00:03
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
2022-12-02 15:22
中北大学_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
1 收藏 评论
分享

全站热榜

正在热议