赞
踩
塔子哥拥有一个长度为 n n n 的 01 串,现在他想知道,对于每个字符,在它前面的最近的不同字符的下标是多少。
本题为多组测试数据,第一行输入一个正整数 T T T( 1 ≤ T ≤ 100 1 \leq T \leq 100 1≤T≤100),代表测试数据组数。对于每组测试数据,第一行输入一个正整数 n n n( 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1≤n≤1000),代表初始 01 串的长度。第二行输入一个长度为 n n n 的 01 串,代表初始字符串。
对于每组测试数据,输出一行包含 n n n 个整数 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,…,an,其中 a i a_i ai 代表初始字符串中第 i i i 个位置的字符前面,最近的不同字符的下标是 a i a_i ai。特殊的,如果前面不存在不同字符,则输出 − 1 -1 −1 表示不存在。
1
4
1101
-1 -1 2 3
记 zero
和 one
为 最后一个 0/1 的下标 ,初始值为 -1。
遍历字符串,每次记录 1 和 0 的最新下标,并将其不同字符的最后一个下标加入答案。
代码见网站内部(文章顶部):塔子哥的文字题解
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。