CF2008E.Alternating String

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

交替字符串

Sakurako 非常喜欢交替字符串。她把一个由小写拉丁字母组成的字符串 ss 称为"交替字符串",如果字符串中偶数位置的字符都相同,奇数位置的字符都相同,且字符串的长度是偶数。

例如,字符串 abab 和 gg 是交替的,而字符串 aba 和 ggwp 则不是。

作为她的好朋友,你决定送她这样一个字符串,但你没能找到一个。幸运的是,你可以对字符串执行两种操作:

  1. 选择一个索引 ii 并删除字符串中的第 ii 个字符,这将使字符串的长度减少 11 。这种操作最多可以执行 11 次;

  2. 选择一个索引 ii 并将 sis_i 替换为任意其他字母。

由于你很着急,你需要确定将字符串变成交替字符串所需的最少操作次数。

输入格式

第一行包含一个整数 tt (1≤t≤104)(1 \le t \le 10^4)。

每个测试用例的第一行包含一个整数nn (1≤n≤2⋅105)(1 \le n \le 2\cdot 10^5)。

每个测试用例的第二行包含一个字符串ss,由小写拉丁字母组成。

保证所有测试用例中nn的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数——将字符串 ss 变成交替字符串所需的最少操作次数。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页