import sys def brokeWristband(n:int,lis:list): searched=set() #集合,用于记录已经反向查找过的字母 minl = n if len(set(lis))==n:return -1 #无重复则返回-1 for x in range(n): a = lis[x] if a not in searched:# 对每个字母,进行一次反向查找 searched.add(a) for y in range(n-1,x,-1): b = lis[y] if a ==b: minl = min(minl,n+x-y-1) break for y in range(x+1,n): # 每次只找最近的字母 b = lis[y] if a==b: minl = min(minl,y-x-1) break return minl flag = True n = input() for line in sys.stdin: if flag: n = int(line) flag = False else: lis = list(line.strip()) minl = brokeWristband(n,lis) print(minl) flag = True