当前位置:   article > 正文

【备战秋招】7月13日-科大讯飞-第一题-最近不同字符_在一行中输入一个整数 n(1≤n≤1000),表示未读的消息量。

在一行中输入一个整数 n(1≤n≤1000),表示未读的消息量。

在线测试本题

最近不同字符

题目描述

塔子哥拥有一个长度为 n n n 的 01 串,现在他想知道,对于每个字符,在它前面的最近的不同字符的下标是多少。

输入描述

本题为多组测试数据,第一行输入一个正整数 T T T 1 ≤ T ≤ 100 1 \leq T \leq 100 1T100),代表测试数据组数。对于每组测试数据,第一行输入一个正整数 n n n 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1n1000),代表初始 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
  • 2
  • 3

样例输出

-1 -1 2 3
  • 1

题解

zeroone为 最后一个 0/1 的下标 ,初始值为 -1。

遍历字符串,每次记录 1 和 0 的最新下标,并将其不同字符的最后一个下标加入答案。

代码见网站内部(文章顶部):塔子哥的文字题解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/961447
推荐阅读
相关标签
  

闽ICP备14008679号