CF2008E.Alternating String
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
交替字符串
Sakurako 非常喜欢交替字符串。她把一个由小写拉丁字母组成的字符串 s 称为"交替字符串",如果字符串中偶数位置的字符都相同,奇数位置的字符都相同,且字符串的长度是偶数。
例如,字符串 abab 和 gg 是交替的,而字符串 aba 和 ggwp 则不是。
作为她的好朋友,你决定送她这样一个字符串,但你没能找到一个。幸运的是,你可以对字符串执行两种操作:
-
选择一个索引 i 并删除字符串中的第 i 个字符,这将使字符串的长度减少 1 。这种操作最多可以执行 1 次;
-
选择一个索引 i 并将 si 替换为任意其他字母。
由于你很着急,你需要确定将字符串变成交替字符串所需的最少操作次数。
输入格式
第一行包含一个整数 t (1≤t≤104)。
每个测试用例的第一行包含一个整数n (1≤n≤2⋅105)。
每个测试用例的第二行包含一个字符串s,由小写拉丁字母组成。
保证所有测试用例中n的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数——将字符串 s 变成交替字符串所需的最少操作次数。
输入输出样例
输入#1
10 1 a 2 ca 3 aab 5 ababa 6 acdada 9 ejibmyyju 6 bbccbc 6 abacba 5 bcbca 5 dcbdb
输出#1
1 0 1 1 2 6 2 3 1 1
说明/提示
对于字符串 ababa,你可以删除第一个字符得到 baba,这是一个交替字符串。
对于字符串 acdada,你可以将前两个字符改为 d 和 a 得到 dadada,这是一个交替字符串。
输入解题思路,AI测评打分。不知道怎么写?