给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串
代码:非注解
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
result=0
temp=''
for item in s:
if item not in temp:
temp += item
else:
if len(temp)>result:
result=len(temp)
temp = temp[temp.index(item) + 1:]
temp += item
return max(len(temp),result)
代码:注解
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
result=0
temp=''
#list=[]
for item in s:
if item not in temp:
temp += item
# print(temp)
else:
if len(temp)>result:
result=len(temp)
# print(result)
# print(temp.index(item))
# print('{}暂时最长非重复子串:'.format(temp))
list.append(temp)
temp = temp[temp.index(item) + 1:]
# print(temp)
temp += item
# print(temp)
# list.append(temp)
# return max(len(temp),result),list
return max(len(temp),result)