编程题
### 问题描述 大衣有一个长度为 $N​$ 的字符串 $S​$,包含字符 $+,-,0​$,其中 $+​$ 表示一个带正电的物体,$-​$ 表示一个带负电的物体,$0​$ 表示一个中性物体。 每一秒,带电物体会影响与之相邻的中性物体,但不会影响其他带电物体: - 如果一个物体最初是中性的,并且只有一个相邻的带电物体,那么它会变成和相邻物体带同种电荷的带电体。 - 如果一个物体最初是中性的,并且没有相邻的带电物体,那么它会保持中性。 - 如果一个物体最初是中性的,并且有两个相邻的带电物体,如果两个相邻的带电体带同种电荷,那么它会变成和相邻物体带同种电荷的带电体,否则它会保持中性。 请找出无限时间后字符串内中性物体的数量。 ### 输入格式 第一行输入一个正整数 $T$ 表示测试数据的组数。 接下来 $T​$ 组测试数据每组输入两行: - 第一行输入一个正整数 $N$ 表示字符串 $S$ 的长度。 - 第二行输入一个长度为 $N$ 的字符串 $S$。 ### 输出格式 对于每组测试数据,输出无限时间后字符串内中性物体的数量,并换行。 ### 样例输入 ```text 4 2 00 3 -+0 6 00+-00 8 0-0+000- ``` ### 样例输出 ```text 2 0 0 2 ``` ### 说明 样例 $1$:因为没有带电物体,所以所有物体仍保持中性,有 $2$ 个中性物体。 样例 $2$:$1$ 秒后,字符串 $S$ 变成 `-++​`,并且之后不会再发生变化,有 $0$ 个中性物体。 样例 $3$: - $1$ 秒后,字符串 $S$ 变成 `0++--0`。 - $2$ 秒后,字符串 $S$ 变成 `+++---`。 在这之后字符串 $S$ 不会再发生变化,有 $0$ 个中性物体。 样例 $4$:$1$ 秒后,字符串 $S$ 变成 `--0++0--`,并且之后不会再发生变化,有 $2$ 个中性物体。 ### 评测数据规模 对于所有的评测数据,$1\le T\le 20$,$1\le N\le 10^4$,字符串 $S$ 仅包含字符 $+,-,0$。
查看答案
赣ICP备20007335号-2