CF2241C.RemovevomeR
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给你一个仅由字符 0 和 1 组成的二进制字符串 s。
在一次操作中,你可以执行以下步骤:
- 选择 s 的一个子串∗,该子串是一个长度至少为 2 的回文串†;
- 从该选定的子串中恰好删除一个字符。
然后将字符串剩余部分拼接起来,形成新的字符串 s。
求经过任意次(可能为零次)上述操作后,字符串 s 可能达到的最小可能长度。
∗ 若字符串 a 可通过从字符串 b 的开头删除若干(可能为零或全部)字符、并从结尾删除若干(可能为零或全部)字符而得到,则称 a 是 b 的一个子串。
† 设字符串 a 的长度为 m,若对所有 1≤i≤m 均满足 ai=am+1−i,则称 a 是一个回文串。
输入格式
第一行包含一个整数 t(1≤t≤100)—— 测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤100)—— 二进制字符串 s 的长度。
每个测试用例的第二行包含一个长度为 n 的二进制字符串 s。保证 s 中的每个字符均为 0 或 1。
输出格式
对于每个测试用例,输出在任意次数执行该操作后字符串 s 能达到的最小可能长度。
输入输出样例
输入#1
4 4 0000 3 110 6 110011 6 101100
输出#1
1 2 1 1
说明/提示
在第一个测试用例中,初始字符串为 0000。我们可以执行以下操作序列:
- 选择回文子串 0000,删除其中一个 0,字符串变为 000。
- 选择回文子串 000,删除其中一个 0,字符串变为 00。
- 选择回文子串 00,删除其中一个 0,字符串变为 0。
字符串 0 中不包含长度至少为 2 的回文子串,因此无法再执行任何操作。最小可能长度为 1。
在第二个测试用例中,初始字符串为 110。
- 选择回文子串 11,删除其中一个 1,字符串变为 10。
字符串 10 中不包含长度至少为 2 的回文子串,因此无法再执行任何操作。最小可能长度为 2。
输入解题思路,AI测评打分。不知道怎么写?