python
2026-05-16 21:37:55
发布于:江苏
1阅读
0回复
0点赞
import sys
def main() -> None:
data = sys.stdin.read().split()
if not data:
return
s1, s2 = data[0], data[1]
n1, n2 = len(s1), len(s2)
# 复制一份,用于表示环上的所有连续子串
t1 = s1 + s1
t2 = s2 + s2
max_len = 0
max_possible = min(n1, n2)
# 从长到短尝试,找到第一个满足的长度即为答案
for L in range(max_possible, 0, -1):
found = False
for i in range(n1): # 起点只需在原始长度范围内
sub = t1[i:i + L] # 长度为L的环上子串
if sub in t2: # 在另一个环上是否存在
max_len = L
found = True
break
if found:
break
print(max_len)
if __name__ == "__main__":
main()
这里空空如也

有帮助,赞一个