#P1396. 2023.07.20-OPPO算法-第二题-排列还原
2023.07.20-OPPO算法-第二题-排列还原
![](https://s3.bmp.ovh/imgs/2024/09/03/9ec1757951030a02.jpg)
塔子哥有一天翻出来一个旧手机,但是塔子哥早已忘记这个手机的密码。
他只知道密码是一个排列,但他现在忘了具体密码是什么。于是他打开了密保:密保是一串01串,表示这个排列的前 i 项和的奇偶性了。现在,塔子哥希望你能帮他还原出一个可能的密码。
排列的定义: 长度为 n 的数组, 1 到 n 都只出现了一次。
输入第一行一个正整数 n ,代表排列的大小。 输入第二行为一个长度为 n 的01串, 第 i 个字符为'1'代表排列的前i项和为奇数,'0'代表前 i 项和为偶数。
如果无解, 请输出 −1 。 否则输出一个合法的排列。有多解时输出任意即可。
样例输入
5
01011
样例输出
4 5 3 1 2
说明
前一项之和是4, 为偶数。前两项之和为9, 为奇数。前三项之和为12,为偶数。前四项之和为13, 为奇数。前两项之和为15, 为奇数。
符合要求。
输出[2,5,1,3,4]这个数组也是可以通过本样例的。
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.