这题我的思路是,遍历字符串,为了方便遍历,我将字符串转换成了整形数组,特判最后一个数是不是0,如果是0直接输出-1,不是就继续进行下面操作
边遍历边统计下一次需要填充的次数count,当遍历到1时我们就需要进行填充,填充i+1-j
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
String string=scanner.next();
if(string.charAt(string.length()-1)=='0') {
System.out.println(-1);
return;
}
char c[]=string.toCharArray();
int a[]=new int[n];
ArrayList<Integer> list=new ArrayList<>();
for (int i = 0; i < a.length; i++) {
a[i]=c[i]-'0';
}
int count=1;
for (int i = 0; i < a.length; i++) {
if(a[i]==1) {
for (int j = 0; j < count; j++) {
list.add(i+1-j);
}
count=0;
}
count++;
}
for(Integer x:list) {
System.out.print(x+" ");
}
}
}



京公网安备 11010502036488号