Given a string, find the length of the longest substring without repeating characters.
Examples:
Given “abcabcbb”, the answer is “abc”, which the length is 3.
Given “bbbbb”, the answer is “b”, with the length of 1.
Given “pwwkew”, the answer is “wke”, with the length of 3. Note that the answer must be a substring, “pwke” is a subsequence and not a substring.
我的思路:
不断往temp容器里面压字符,一旦检测到有相同字符,对temp切片:temp[temp.index(i)+1:],保留第一个重复元素之后的字符。
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
temp = []
maxlen = 0
for i in s:
if i in temp:
length = len(temp)
if length > maxlen:
maxlen = length
temp=temp[temp.index(i)+1:]
temp.append(i)
return max(len(temp),maxlen)