题库练习 RemovevomeR
← 上一题 下一题 →

A16876 | RemovevomeR

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

给你一个仅由字符 01 组成的二进制字符串 $s$。

在一次操作中,你可以执行以下步骤:

* 选择 $s$ 的一个子串$^{\text{∗}}$,该子串是一个长度至少为 $2$ 的回文串$^{\text{†}}$;
* 从该选定的子串中**恰好删除一个字符**。

然后将字符串剩余部分拼接起来,形成新的字符串 $s$。

求经过任意次(可能为零次)上述操作后,字符串 $s$ 可能达到的**最小可能长度**。

$^{\text{∗}}$ 若字符串 $a$ 可通过从字符串 $b$ 的开头删除若干(可能为零或全部)字符、并从结尾删除若干(可能为零或全部)字符而得到,则称 $a$ 是 $b$ 的一个子串。

$^{\text{†}}$ 设字符串 $a$ 的长度为 $m$,若对所有 $1 \le i \le m$ 均满足 $a_i = a_{m + 1 - i}$,则称 $a$ 是一个回文串。

输入格式

第一行包含一个整数 $t$($1 \le t \le 100$)—— 测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 $n$($1 \le n \le 100$)—— 二进制字符串 $s$ 的长度。

每个测试用例的第二行包含一个长度为 $n$ 的二进制字符串 $s$。保证 $s$ 中的每个字符均为 $\texttt{0}$ 或 $\texttt{1}$。

输出格式

对于每个测试用例,输出在任意次数执行该操作后字符串 $s$ 能达到的最小可能长度。

输入输出样例

输入 #1
4
4
0000
3
110
6
110011
6
101100
输出 #1
1
2
1
1
C++ 编辑器
输入
输出