接外包,有相关需求的可以联系我:Telegram | Email

Longest Substring Without Repeating Characters | Sliding Windows

该文章创建(更新)于02/26/2022,请注意文章的时效性!

Descreption

Given a string s, find the length of the longest substring without repeating characters.

Solution

sliding windows, The most import things is how to get The max.

Code

  • submit code
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        left = 0
        right = 0

        window_dict = {}

        max = 0

        tmp = ""

        while left < len(s):
            INPUT = s[left]
            left += 1
            tmp  += INPUT

            window_dict[INPUT] = window_dict.get(INPUT,0) + 1

            if (max < len(tmp) and window_dict.get(INPUT) == 1):
                max = len(tmp)

            while(window_dict.get(INPUT) > 1):
                OUTPUT = s[right]
                right += 1
                tmp = tmp[1:]

                if(max < len(tmp)):
                    max = len(tmp) - 1

                window_dict[OUTPUT] = window_dict.get(OUTPUT) - 1

        return  max
  • full code
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        # if(len(s) == 1):
        #     return 1

        left = 0
        right = 0

        window_dict = {}

        max = 0

        tmp = ""

        while left < len(s):
            INPUT = s[left]
            left += 1
            tmp += INPUT

            # if (max < len(tmp)):
            #     max = len(tmp)
            print("tmp:" + tmp)

            window_dict[INPUT] = window_dict.get(INPUT,0) + 1

            if (max < len(tmp) and window_dict.get(INPUT) == 1):
                max = len(tmp)

            while(window_dict.get(INPUT) > 1):
                print("__________________desec__________________")
                OUTPUT = s[right]
                right += 1

                if( max < len(tmp)):
                    max = len(tmp) - 1

                tmp = tmp[1:]
                window_dict[OUTPUT] = window_dict.get(OUTPUT) - 1

        return  max


S = Solution()
s = ""
s = "a"
# s = " a"
# s = "abcabcbb"
print(S.lengthOfLongestSubstring(s))




👇 Share | 分享 👇


要不赞赏一下?

微信
支付宝
PayPal
Bitcoin

版权声明 | Copyright

除非特别说明,本博客所有作品均采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。转载请注明转自-
https://www.emperinter.info/2022/02/26/longest-substring-without-repeating-characters-sliding-windows/


要不聊聊?

我相信你准备留下的内容是经过思考的!【勾选防爬虫,未勾选无法留言】

*

*



微信公众号

👉 NewsLetter ❤️ 邮箱订阅 👈

优惠码