Leetcode训练(Python3)——3.无重复字符的最长子串(decode错误)

3.无重复字符的最长子串

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

示例 1:

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

示例 2:

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

示例 3:

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

错误:

可能由于decode原因,无法读取输入?AttributeError: 'str' object has no attribute 'decode'

代码:

class Solution:
    def lengthOfLongestSubstring(self, s):
        def takeSecond(elem):
            return elem[1]  # 指定第二个元素排序
        maxunrepeat = 0
        x = list(s)
        dis = [(0, 0)]
        while maxunrepeat < len(x) - dis[-1][0]:
            repeat = [0]
            z = 1
            i = 0
            if x[0] not in x[z:len(x)]:
                vector = [x[1]]
                vector.extend(x)
            else:
                vector = x
            while vector[0] in vector[z:len(vector)]:
                i = i + 1
                repeat += [vector.index(vector[0], z, len(vector))]
                dis += [(repeat[i - 1], repeat[i] - repeat[i - 1])]
                z = vector.index(vector[0], z, len(vector)) + 1
            dis2 = []
            dis2 += dis
            dis2.sort(key=takeSecond, reverse=True)
            for mmm in range(0, len(dis2)):
                www = 0
                newm = []
                newm += vector[dis2[mmm][0] + 1:dis2[mmm][0] + dis2[mmm][1]]
                for i in range(0, len(newm)):
                    if newm.count(newm[i]) - 1:
                        www += 1
                if www == 0:
                    unrepeat = len(newm) + 1
                    maxunrepeat = max(maxunrepeat, unrepeat)
                    break
            for i in range(0, dis[-1][0] + 1):
                del vector[0]
        return maxunrepeat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值