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`,这是一个交替字符串。