题解 | 01串题

01串题

https://www.nowcoder.com/practice/05b85386f9ac4361b067d13d6095e457

分类讨论一下 最后要求的长度为x的01序列一定是010101.. 或者10101010.. 这样01相间,而且0和1至少都要有x/2个,那么多余的部分都应该被操作删除了,对于每一次删除是删除两个一样的字符所以把多余的0和1都放在一起就行了,还要保证多余的0和1都是偶数就行了

void solve(){
    int a,b,x;
    cin>>a>>b>>x;
    if(min(a,b)<x/2){
        cout<<-1<<'\n';
    }else{
        if((a-x/2)%2==0&&(b-x/2)%2==0){
            for(int i=1;i<=x/2;i++){
                cout<<"01";
                a--;
                b--;
            }
            for(int i=1;i<=a;i++){
                cout<<'0';
            }
            for(int j=1;j<=b;j++){
                cout<<'1';
            }
            cout<<'\n';
        }else{
            cout<<-1<<'\n';
        }
    }
}

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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