LeetCodePython_3.Longest Substring Without Repeating Characters

Longest Substring Without Repeating Characters

解决思路

把每个子序列列出来,然后去比较有没有相同的字符,最后输出,每个子序列列出来应该有单独的函数,比较相同字符的话要么就是循环,要么就是用函数。(之前的想法)

看了答案之后的解决方法:就是当没有重复的时候,无重复的子串长度一直增加,但是当有重复的时候,i-st+1就从1开始计算。

疑问

1、字符串的子序列怎么提取,
有专门的傻瓜方法,也可以直接用enumerate
2、循环或者函数
(还是一样的,先自己去百度查有没有相应的函数,再去看答案)

语法知识

1.把字符串进行子序列划分的函数s[i:i+x+1]
2.for i, ch in enumerate(s)

感悟

要把enumerate的循环好好看一遍!

代码

代码链接

class Solution:
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        d, res, start = {}, 0, 0
        for i, ch in enumerate(s):
            if ch in d: 
                start = max(start, d[ch]+1)
            res = max(res, i-start+1)                
            d[ch] = i
        return res

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值