码迷,mamicode.com
首页 > 编程语言 > 详细

leetcode 3 python

时间:2018-06-10 15:35:07      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:sub   class   solution   ret   cab   string   for   bbb   tco   

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

示例:

给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。

给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。

给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列  而不是子串。

 

解答:

首先题目中的要找出的是最长无重复子串,不重复的字母之间应该是互相在一起的,思路是首先初始化定义一个最长非空子串的长度为1,其次定义一个子串,类型为字符串。

对题目给定的字符串进行遍历,遇到不重复的加到子串里,如果字母存在于子串中,记录最大长度,并从重复的下一个字母开始。

注意:

最后不要忘记对于循环完事之后的子串和最大子串进行对比。

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        if not s:
            return 0
        substr=‘‘
        longeststr=1
        for s1 in s:
            if s1 not in substr:
                substr=substr+s1
            else:
                if len(substr)>longeststr:
                    longeststr=len(substr)
                substr=substr+s1
                substr=substr[substr.index(s1)+1:]
        if len(substr)>longeststr:
            longeststr=len(substr)
        return longeststr
                

  

 

leetcode 3 python

标签:sub   class   solution   ret   cab   string   for   bbb   tco   

原文地址:https://www.cnblogs.com/ccgcy/p/9162589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!