这题我的思路是,遍历字符串,为了方便遍历,我将字符串转换成了整形数组,特判最后一个数是不是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+" ");
		}
		
		

	}

}