CF2008E Alternating String
题目描述
# 交替字符串
Sakurako 非常喜欢交替字符串。她把一个由小写拉丁字母组成的字符串 $s$ 称为"交替字符串",如果字符串中偶数位置的字符都相同,奇数位置的字符都相同,且字符串的长度是偶数。
例如,字符串 `abab` 和 `gg` 是交替的,而字符串 `aba` 和 `ggwp` 则不是。
作为她的好朋友,你决定送她这样一个字符串,但你没能找到一个。幸运的是,你可以对字符串执行两种操作:
1. 选择一个索引 $i$ 并删除字符串中的第 $i$ 个字符,这将使字符串的长度减少 $1$ 。这种操作最多可以执行 $1$ 次;
2. 选择一个索引 $i$ 并将 $s_i$ 替换为任意其他字母。
由于你很着急,你需要确定将字符串变成交替字符串所需的最少操作次数。
输入格式
第一行包含一个整数 $t$ $(1 \le t \le 10^4)$。
每个测试用例的第一行包含一个整数$n$ $(1 \le n \le 2\cdot 10^5)$。
每个测试用例的第二行包含一个字符串$s$,由小写拉丁字母组成。
保证所有测试用例中$n$的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数——将字符串 $s$ 变成交替字符串所需的最少操作次数。
说明/提示
对于字符串 `ababa`,你可以删除第一个字符得到 `baba`,这是一个交替字符串。
对于字符串 `acdada`,你可以将前两个字符改为 `d` 和 `a` 得到 `dadada`,这是一个交替字符串。