字节跳动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;
}
全部评论

相关推荐

哈哈哈哈哈哈哈哈哈哈这个世界太美好了
凉风落木楚山秋:毕业出路老师不管,你盖个章他好交差就完事了,等你盖完毕业了就不关他事情了
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务