题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
http://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7
#coding:utf-8
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return int整型
#
class Solution:
def lengthOfLongestSubstring(self , s ):
# write code here
d = dict()
curLen = 0
maxLen = 0
for idx, item in enumerate(s):
idxPre = d.get(item, -1)
if idxPre == -1 or idx - idxPre > curLen:
curLen += 1
elif idx-idxPre < curLen:
curLen = idx-idxPre
if curLen > maxLen:
maxLen = curLen
# print(idx, item, idxPre, curLen, maxLen)
d[item] = idx
return maxLen
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return int整型
#
class Solution:
def lengthOfLongestSubstring(self , s ):
# write code here
d = dict()
curLen = 0
maxLen = 0
for idx, item in enumerate(s):
idxPre = d.get(item, -1)
if idxPre == -1 or idx - idxPre > curLen:
curLen += 1
elif idx-idxPre < curLen:
curLen = idx-idxPre
if curLen > maxLen:
maxLen = curLen
# print(idx, item, idxPre, curLen, maxLen)
d[item] = idx
return maxLen