查询字符串中最长不重复子串
固定字符串
def get_longest_string(s):
temp_dict = {}
str_list = []
start, max_length = 0, 0
for i in range(len(s)):
cur = s[i]
if cur in temp_dict:
start = max(temp_dict[cur] + 1, start)
if i - start + 1 >= max_length:
max_length = i - start + 1
str_list.append(s[start:i + 1])
temp_dict[cur] = i
res_str = ", ".join([i for i in str_list if len(i) == max_length])
# return res_str, max_length
print(res_str, len(res_str))
s1 = "mabcafrab"
res = get_longest_string(s1)
随机输入字符串
def get_longest_string(s):
temp_dict = {}
str_list = []
start, max_length = 0, 0
for i in range(len(s)):
cur = s[i]
if cur in temp_dict:
start = max(temp_dict[cur] + 1, start)
if i - start + 1 >= max_length:
max_length = i - start + 1
str_list.append(s[start:i + 1])
temp_dict[cur] = i
res_str = ", ".join([i for i in str_list if len(i) == max_length])
# return res_str, max_length
print(res_str, len(res_str))
s1 = input("请输入字符串")
res = get_longest_string(s1)