美文网首页
python代码|leetcode无重复字符的最长子串(中等)

python代码|leetcode无重复字符的最长子串(中等)

作者: 苏钟白 | 来源:发表于2021-04-12 22:43 被阅读0次

    你好呀 

    我是然怡

    题目来源:力扣(LeetCode)

    1

    无重复字符的最长子串

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

    示例 1:

    输入: s = "abcabcbb"

    输出: 3 

    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

    示例 2:

    输入: s = "bbbbb"

    输出: 1

    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

    示例 3:

    输入: s = "pwwkew"

    输出: 3

    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3.

    请注意,你的答案必须是子串的长度,"pwke" 是一个子序列,不是子串。

    示例 4:

    输入: s = ""

    输出: 0

    提示:

    0 <= s.length <= 5 * 104

    s 由英文字母、数字、符号和空格组成

    2

    通过代码1(自己写)

    通过代码2(参考)

    3

    总结

    1

    我的思路简单暴力:

    两层for循环,把字符串转为列表后,依次遍历每一个列表元素,在里层循环中如果出现相同的字母,则跳出循环,记录以该元素为第一个字母的长度,保存在count列表中。

    再计算以下一个字母开头的满足条件的最长长度,依次循环记录。

    最后如果count列表不为零则输出count列表的最大值,否则输出0。

    2

    看了别人的代码,感觉我的代码太low了。

    首先用了enumerate()函数,这个函数可以循环遍历字符串或列表的索引和对应的元素。

    再使用字典,因为字典的key值是唯一的,所以如果元素已经在字典中,则将left(记录最长字符串的最左边的元素坐标)+1,再用字典记录当前位置。妙啊~

    相关文章

      网友评论

          本文标题:python代码|leetcode无重复字符的最长子串(中等)

          本文链接:https://www.haomeiwen.com/subject/dxrokltx.html