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

系统 2056 0

题目:

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

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

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

代码:

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        len_str=len(s)
        #存储所有非重复子序列的长度
        final_len=[]
        #对序列进行遍历,未重复时进行字符串的拼接,重复时跳出拼接,进行下一轮的遍历
        for i in range(len_str):
            data1=s[i]
            for j in range(i+1,len_str):
                if s[j] not in data1:
                    data1=data1+s[j]
                    
                else:
                    break
            final_len.append(len(data1))
        #判断当存储的非重复子序列为空时,s是为空格,为空格字符时,非重复字符长度为1,为空字符时,非重复的字符长度为0
        if final_len==[]:
            if s=='':
                final_len.append(0)
            else:
                final_len.append(1)

        return(max(final_len))

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论