力扣 (LeetCode)python刷题笔记3.无重复字符的最长子串

力扣 (LeetCode)python刷题笔记3.无重复字符的最长子串,第1张

概述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入:s=“abcabcbb”输出:3解释:因为无重复字符的最长子串是“abc”,所以其长度为3。示例2:输入:s=“bbbbb”输出:1解释:因为无重复字符的最长子串是“b”,所以其长度为1。示例3

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

示例 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 由英文字母、数字、符号和空格组成

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

class Solution(object):    def lengthOfLongestSubstring(self, s):        """        :type s: str        :rtype: int        """        tmp = ''        length = 0        for i in s:            if i not in tmp:                tmp += i                length = max(length,len(tmp))   #如果字符不重复,将新字符加入并选择新加入后的长度与之前最长的不重复子串中长的一个            else:                tmp += i                tmp = tmp[tmp.index(i) + 1:]    #如果新字符与之前有重复,则将变成从第一个不重复的之后开始        return length

index()的用法:
用于从列表中找出某个值第一个匹配项的索引位置。
比如说:

 s = 'hello,world'>>> s.index('w')6

tmp[tmp.index(i) + 1:]则表示从第一个不重复的字符之后开始的子串

总结

以上是内存溢出为你收集整理的力扣 (LeetCode)python刷题笔记3.无重复字符的最长子串全部内容,希望文章能够帮你解决力扣 (LeetCode)python刷题笔记3.无重复字符的最长子串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1188438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存