CF1950E.Nearly Shortest Repeating Substring
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的字符串 s,该字符串仅由小写拉丁字母组成。请你找到最短字符串 k 的长度,使得可以将若干个(可能只需一个)k 拼接起来,得到一个与 s 长度相同的新字符串 c,并且 c 与 s 至多只有一个字符不同。
更正式地说,要求找到最短的 k,使得存在正整数 x,满足 c=x 次k+⋯+k,且 s 和 c 长度相同,并且 ci=si 的位置最多只有一个(即最多有 0 或 1 个这样的下标 i)。
输入格式
第一行包含一个整数 t(1≤t≤103),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105),表示字符串 s 的长度。
每个测试用例的第二行包含一个仅由小写拉丁字母组成的字符串 s。
所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出满足题意的最短字符串 k 的长度。
输入输出样例
输入#1
5 4 abaa 4 abba 13 slavicgslavic 8 hshahaha 20 stormflamestornflame
输出#1
1 4 13 2 10
说明/提示
在第一个测试用例中,可以选择 k=a,此时 k+k+k+k=aaaa,与 s 只在第二个位置不同。
在第二个测试用例中,不能选择长度为 1 或 2 的 k。可以选择 k=abba,此时 k 等于 s。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?