LeetCode 解题

LeetCode 3. 无重复字符的最长子串(Longest S

2019-07-23  本文已影响0人  leacoder
LeetCode.jpg

3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

Python3

巧用切片


# @author:leacoder
# @des:  巧用切片 无重复字符的最长子串

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if not s:
            return 0
        tmp_list = []
        res = []
        for value in s:
            if value not in tmp_list:
                tmp_list.append(value)
            else:
                res.append(len(tmp_list))
                i = tmp_list.index(value)
                tmp_list = tmp_list[i + 1:]
                tmp_list.append(value)
        res.append(len(tmp_list))
        return max(res)

GitHub链接:
https://github.com/lichangke/LeetCode

知乎个人首页:
https://www.zhihu.com/people/lichangke/

简书个人首页:
https://www.jianshu.com/u/3e95c7555dc7

个人Blog:
https://lichangke.github.io/

欢迎大家来一起交流学习

上一篇下一篇

猜你喜欢

热点阅读