Longest Substring Without Repeating Characters
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.
Subscribe to see which companies asked this question
笨办法
class Solution(object):
# 输入 p w w k e w
# 返回 w k e
# p lst[i]=[p]
# w not in p
# lst[i].append(w)
# w in [wp]:
# #判断下一个直到len(lst)的最后1个 == lst
# # 如果==:
# # i =
# 下一趟外循环
# 取出二维数组中字符串最长的
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
lst = [-1] * len(s)
# 把不重复的字符添加到列表
for i in range(len(s)):
lst[i] = [s[i]]
for j in range(i +1, len(lst)):
if s[j] not in lst[i]:
lst[i].append(s[j])
else:
break
# 取出最长的
lenitem = [ len(item) for item in lst]
maxitemindex = 0
for index, lengthitem in enumerate(lenitem):
if lengthitem > lenitem[maxitemindex]:
maxitemindex = index
# 字符列表转字符串
return len(''.join(lst[maxitemindex])) if lst else 0