设计一个函数,
输入: 一个字符串
输出: 一个整数
要求的是: 找出输入字符串中的一个最短的连续字符串, 使得这个字符串内包含所有字符至少一次.
注:方便观察结果,已用空格隔开
输入[1]: "ABCDE"
输出[1]: 5
输入[2]: "AB ABCDE"
输出[2]: 5
输入[3]: "ABA BCAAADE CCCCB"
输出[3]: 7
我的解法如下:
def find_str2(strA):
str_len = len(strA)
ele_num = len(set(strA))
rel = str_len - ele_num
count_num = str_len
for j in range(rel+1):
list1 = list(set(strA))
list2 = []
temp = 0
for i in range(j,str_len):
temp += 1
if strA[i] in list1:
list2.append(strA[i])
list1.remove(strA[i])
if not list1:
if temp < count_num:
end = i
start = end - temp + 1
strB = strA[start:end+1]
count_num = temp
break
return count_num,strB