代码:
#include <bits/stdc++.h>
using namespace std;
int t,n[1000005];
string b[1000005];
int main(){
cin >> t;
for(int i = 1; i <= t; i++){
cin >> n[i];
cin >> b[i];
}
for(int i = 1; i <= t; i++){
int cs = 0,ci = 0;
int len = b[i].size();
for(int j = 0; j < len; j++){
if(b[i][j] == '1') cs++;
else ci++;
}
if(ci == 0 || cs == 0){
if(cs == n[i]){
for(int k = 1; k <= n[i]; k++){
cout << k << " ";
}
cout << endl;
} else {
for(int k = n[i]; k >= 1; k--){
cout << k << " ";
}
cout << endl;
}
} else {
int l = 0;
for(int k = 1; k <= n[i]; k++){
if(b[i][k] == '1' && b[i][k+1] != '0'){
cout << k << " ";
} else {
cout << n[i] << " ";
l = k;
break;
}
}
for(int k = n[i]-1; k >= l; k--){
cout << k << " ";
}
cout << endl;
}
}
return 0;
}
//p = 7 n = 10
//1111110000
//1 2 3 4 5 10 9 8 7 6
//n = 10
//1010101010
//1 2 3 4 5 6 7 8 9 10
//2 1 4 3 6 5 8 7 10 9
//1000000111
//1 2 3 4 5 6 7 8 9 10