给定一个字符串,找出没有重复字符的最长的子串。
def longest_substr(s):
dic = {}
start,maxlen,substr = 0,0,""
for i,x in enumerate(s):
if x in dic:
start = max(dic[x]+1,start)
dic[x] = i
else:
dic[x] = i
if i-start+1>maxlen:
maxlen = i-start+1
substr = s[start:i+1]
return(substr)
print(longest_substr("abcbefdsafgf"))
print(longest_substr("abdsgcdhef"))
print(longest_substr("abbacsafdefh"))
本文介绍了一种求解最长无重复字符子串的算法实现,通过使用字典记录字符的最新位置,有效地解决了字符串中查找最长无重复子串的问题。代码示例清晰地展示了算法流程,包括初始化变量、遍历字符串、更新字典和记录最大长度子串等关键步骤。
3万+

被折叠的 条评论
为什么被折叠?



