leetcode-003无重复字符的最长子串--python

Posted Python_Heaven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-003无重复字符的最长子串--python相关的知识,希望对你有一定的参考价值。

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

输入: s = "abcabcbb"
输出: 3 
输入: s = "bbbbb"
输出: 1
输入: s = "pwwkew"
输出: 3

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters

思路:1.建一个列表max_s等待放字符串,设置最长len_max_s为0
2.遍历字符串,如果不在列表里,把字符串放进去。
如果在列表中,就找到他的位置,并把他和前面的字符串都删掉,然后再加进来,
3.记录一下最长字符串的长度。返回最长长度。

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        max_s = []
        len_max_s = 0
        for i in s:
            if i not in max_s:
                max_s.append(i)
            else:
                a = max_s.index(i)
                print(a)
                for j in range(a+1):
                    max_s.pop(0)
                if i not in max_s:
                    max_s.append(i)
            print(max_s)
            len_s = len(max_s)
            if len_max_s < len_s:
                len_max_s = len_s
        return len_max_s

A = Solution()
result = A.lengthOfLongestSubstring("aab")  # 2
# result = A.lengthOfLongestSubstring("pwwkew")  # 3
# result = A.lengthOfLongestSubstring("qrsvbspk")  # 5
print(result)

以上是关于leetcode-003无重复字符的最长子串--python的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode--003--无重复字符的最长子串(java)

LeetCode 003. 无重复字符的最长子串 双指针

leetcode-003无重复字符的最长子串--python

leetcode-003无重复字符的最长子串--python

leetcode-003无重复字符的最长子串--python

Leetcode-003-无重复字符最长子串长度