CF1389C.Good String

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

Let's call left cyclic shift of some string t1t2t3…tn−1tnt_1 t_2 t_3 \dots t_{n - 1} t_n as string t2t3…tn−1tnt1t_2 t_3 \dots t_{n - 1} t_n t_1.

Analogically, let's call right cyclic shift of string tt as string tnt1t2t3…tn−1t_n t_1 t_2 t_3 \dots t_{n - 1}.

Let's say string tt is good if its left cyclic shift is equal to its right cyclic shift.

You are given string ss which consists of digits 0–9.

What is the minimum number of characters you need to erase from ss to make it good?

我们称字符串 t1t2t3…tn−1tnt_1 t_2 t_3 \dots t_{n - 1} t_n 的左循环移位为字符串 t2t3…tn−1tnt1t_2 t_3 \dots t_{n - 1} t_n t_1。

类似地,称字符串 tt 的右循环移位为字符串 tnt1t2t3…tn−1t_n t_1 t_2 t_3 \dots t_{n - 1}。

若字符串 tt 的左循环移位等于其右循环移位,则称 tt 是好的。

现给定一个仅由数字 0–9 组成的字符串 ss。

问:至少需要从 ss 中删除多少个字符,才能使其变为“好的”字符串?

输入格式

The first line contains single integer tt (1≤t≤10001 \le t \le 1000) — the number of test cases.

Next tt lines contains test cases — one per line. The first and only line of each test case contains string ss (2≤∣s∣≤2⋅1052 \le |s| \le 2 \cdot 10^5). Each character sis_i is digit 0–9.

It's guaranteed that the total length of strings doesn't exceed 2⋅1052 \cdot 10^5.

第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000)—— 表示测试用例的数量。

接下来的 tt 行为测试用例,每行一个测试用例。每个测试用例仅包含一行,即字符串 ss(2≤∣s∣≤2⋅1052 \le |s| \le 2 \cdot 10^5),其中每个字符 sis_i 均为数字 0–9。

保证所有字符串的总长度不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case, print the minimum number of characters you need to erase from ss to make it good.

对于每个测试用例,输出你需要从字符串 ss 中删除的最少字符数,以使其变为“好”字符串。

输入输出样例

  • 输入#1

    3
    95831
    100120013
    252525252525

    输出#1

    3
    5
    0

说明/提示

In the first test case, you can erase any 33 characters, for example, the 11-st, the 33-rd, and the 44-th. You'll get string 51 and it is good.

In the second test case, we can erase all characters except 0: the remaining string is 0000 and it's good.

In the third test case, the given string ss is already good.

在第一个测试用例中,你可以删除任意 33 个字符,例如第 11 个、第 33 个和第 44 个字符。你将得到字符串 51,它是合法的。

在第二个测试用例中,我们可以删除除字符 0 外的所有字符:剩余的字符串为 0000,它是合法的。

在第三个测试用例中,给定的字符串 ss 本身已经是合法的。

输入解题思路,AI测评打分。不知道怎么写?

首页