题解 | 小红的排列构造
小红的排列构造
https://www.nowcoder.com/practice/a4ec29e74aaa450aa8a4200fe3b06308
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
int n;
string s;
cin >> n;
cin >> s;
vector<int> res;
if(s[n-1] == '0'){
cout << -1 << endl;
return 0;
}
for(int i=0; i<n; ++i){
res.emplace_back(i+1);
}
for(int i=0; i<n; ++i){
if(s[i]=='0'){
swap(res[i], res[i+1]);
}
cout << res[i] << ' ';
}
return 0;
}
// 64 位输出请用 printf("%lld")

查看6道真题和解析