B. Impost or Sus
B. Impost or Sus
时间限制:每个测试点 1 秒 内存限制:每个测试点 256 MB
问题描述
一个由小写拉丁字母组成的字符串 w,当且仅当满足以下所有条件时,被称为 可疑的:
1. 字母 s 至少出现两次,且
2. 对于字母 u 的每一次出现,离该 u 最近的两个 s 与该 u 的距离(字符数)是相同的。
在看你完成一道字符串题目后,你的朋友 Aka 送给你一个仅由字母 s 和 u 组成的字符串 r。你可以对 r 执行以下操作:
选择下标 i (1 \le i \le |r|),并将 r_i 设为 s。
请确定使 r 变得可疑所需的最小操作次数。可以证明,在给定的限制下,总是可以将 r 转换成一个可疑字符串。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t (1 \le t \le 10^4)。接下来是每个测试用例的描述。
每个测试用例只有一行,包含字符串 r (3 \le |r| \le 2 \cdot 10^5)。保证 r_i 是 s 或 u。
保证所有测试用例的 |r| 之和不超过 2 \cdot 10^5。
输出格式
对于每个测试用例,输出一个整数 —— 使 r 变得可疑所需的最小操作次数。
样例输入
9
sus
uuuu
sssss
uusuuu
suuuuuu
usssssss
sssuuusss
susuusuuus
uuuuuuuuuuu
样例输出
0
3
0
3
3
1
1
2
6
样例说明
在第一个测试用例中,字符串 sus 已经是可疑的,因为 s 在字符串中出现了两次,并且离唯一 u 最近的两个 s 都距离它 1 个字符:su––s。
在第二个测试用例中,最优方案是对下标 1、3 和 4 进行操作。之后,字符串 s 变为 suss。字符串 suss 是可疑的,因为 s 在字符串中出现了 3 次,并且离唯一 u 最近的两个 s 都距离它 1 个字符:su––ss。
在第三个测试用例中,由于字符串 sssss 中没有 u,关于 u 的条件是空真(vacuously true)的。因此,给定的字符串已经是可疑的。
在第六个测试用例中,初始字符串 usssssss 不是可疑的,因为离唯一 u 最近的两个 s 分别距离它 1 个字符和 2 个字符:u––sssssss。