首页 > 试题广场 >

小红的项链

[编程题]小红的项链
  • 热度指数:250 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红有一条长度为 n 的项链( n 保证是偶数),她想把这条项链切成两条长度相等的链(切一对对称的位置),并使得这两条链尽可能相似,小红想知道最大的相似度是多少。

项链:一个环形字符串表示,其中字符串第一个字母和最后一个字母是相邻的。
两条链的相似度:两条链中位置相同且字母相同的位置数量。
注意,切出的两条链按原来的顺序比较相似度,不可以左右翻转。

输入描述:
第一行输入一个长度不超过 2 \times 10^5 的只由小写字母组成的环形字符串。


输出描述:
输出一个整数表示答案。
示例1

输入

cabcdabc

输出

3

说明

切第1、2个字母之间的位置和第5、6个字母之间的位置,
将项链切成 "abcd" 和 "abcc" ,相似度为3。
import sys

string = input()
n = len(string)
a = string[: (n // 2)]
b = string[(n // 2) :]
score = sum(a[i] == b[i] for i in range(len(a)))
print(score)
发表于 2025-10-08 22:36:42 回复(0)