lengthOfLongestSubstring 无重复字符最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。
输入: “abcabcbb”
输出: 3
解释: 无重复字符的最长子串是 “abc”,其长度为 3。输入: “bbbbb”
输出: 1
解释: 无重复字符的最长子串是 “b”,其长度为 1。
python解法
暴力穷举法:用一个list存遍历过的子串,如果当前元素不在list中就把元素push进去,然后不断比较更新最长子串的长度
class Solution:
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
stack = []
maxl = 0
for x in s:
if x not in stack:
stack.append(x)
else:
i = stack.index(x)
stack = stack[i+1:]
stack.append(x)
maxl = max(len(stack), maxl)
return maxl