import sys
index = 0
count = None
count_s = None
for line in sys.stdin:
a = line.split("\n")[0]
if index == 0:
index +=1
continue
if index % 2 != 0:
count = int(a)
else:
if a[-1] == a[0]:
print(0)
index+=1
continue
if len(set(a)) == len(a):
print(-1)
index+=1
continue
# 找到相邻距离最短的两个字母
count_s = a + a
d = {}
ix = 0
m = 100000
for _ in count_s:
if _ not in d:
d[_]=ix
else:
m = min(m,ix-d[_]-1)
d[_] =ix
ix += 1
m = -1 if m == 100000 else m
print(m)
index +=1
模拟
判断无法破坏就是len(set(a)) == len(a)
然后平时计算破坏最短 把首位现连然后计算哈希即可

京公网安备 11010502036488号