题解 | 小欧安排座位

#include <iostream>
#include <vector>
using namespace std;
//整体思路就是存储所有特殊孩子,每个特殊孩子都用下一个特殊孩子的号码
int main() {
    int n;
    string ss;
    cin >> n;
    cin >> ss;
    vector<int> spec;//spec存储特殊孩子的序号
    int size = 0;//size存储特殊孩子的个数
    for(int i = 0; i < n; i++){
        if(ss[i]=='1'){
            spec.push_back(i+1);    
            size++;
        }
    }
    int count = 1;//记录是第几个特殊孩子
    for(int i = 0; i < n; i++){
        if(ss[i]=='0')//普通孩子直接输出序号
            cout << i+1 << ' ';
        else{
            if(count==size)//最后一个特殊孩子用第一个的号码
                cout << spec[0] << ' ';
            else
                cout << spec[count] << ' ';
            count++;
        }
    }
    cout << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

2024-12-12 15:07
已编辑
门头沟学院 Java
秋招end未来可期:实习内容太多了,抓不住重点,关键还是用了什么技术解决了什么问题,得到了什么样的效果,另外专业技能有点少,可以网上去找一些别人的简历来参考参考。整体内容够了,估计就是一些内容调整了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务