记 zero
和 one
为 最后一个 0/1 的下标 ,初始值为 -1。
遍历字符串,每次记录 1 和 0 的最新下标,并将其不同字符的最后一个下标加入答案。
小红拥有一个长度为 n 的 01 串,现在他想知道,对于每个字符,在它前面的最近的不同字符的下标是多少。
本题为多组测试数据,第一行输入一个正整数 T(1≤T≤100),代表测试数据组数。对于每组测试数据,第一行输入一个正整数 n(1≤n≤1000),代表初始 01 串的长度。第二行输入一个长度为 n 的 01 串,代表初始字符串。
对于每组测试数据,输出一行包含 n 个整数 a1,a2,…,an,其中 ai 代表初始字符串中第 i 个位置的字符前面,最近的不同字符的下标是 ai。特殊的,如果前面不存在不同字符,则输出 −1 表示不存在。
1
4
1101
-1 -1 2 3