20200329-剑指offer-面试题48. 最长不含重复字符的子字符串(滑动窗口)

传送门
借鉴的评论区的思路,滑动窗口
在这里插入图片描述

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        maxx = 1
        if len(s) == 0:
            return 0
        # 双指针
        lcur = 0
        rcur = 1
        size = 1
        while size >= 1:
            if rcur < len(s):
                if s.find(s[rcur], lcur, rcur) == -1:
                    size = rcur - lcur + 1
                    maxx = max(size, maxx)
                else:
                    for i in range(rcur - 1, lcur - 1, -1):
                        if s[i] == s[rcur]:
                            lcur = i + 1
                            size = rcur - lcur + 1
                            break
                rcur = rcur + 1
            else:
                rcur = min(rcur, len(s)-1)
                maxx = max(maxx, rcur - lcur + 1)
                break
        return maxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值