|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zltzlt 于 2019-8-25 09:12 编辑
今天的题目:
给定一个字符串,请你找出其中不含有重复字符的最长子字符串的长度。
这道题已结束,进入奖励阶段
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子字符串是 "abc",所以其长度为 3。 示例 2:
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子字符串是 "b",所以其长度为 1。 示例 3:
输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子字符串是 "wke",所以其长度为 3。
我的解法:
- def length(string1):
- list1 = []
- for i in range(len(string1)):
- for j in range(len(string1) + 1):
- if i < j:
- if len(set(string1[i:j])) == len(string1[i:j]):
- list1.append(j - i)
- return max(list1, default=0)
复制代码
大佬解法:
- class Solution(object):
- def lengthOfLongestSubstring(self, s):
- """
- :type s: str
- :rtype: int
- """
- record = dict()#记录每个字母最后一次出现的下标,key是字母,val是下标
- res, start = 0, 0
- for end in range(len(s)):
- if s[end] in record:#出现过
- start = max(start, record[s[end]] + 1)
- record[s[end]] = end #刷新最新下标
- res = max(res, end - start + 1) #刷新res
- return res
复制代码
|
评分
-
查看全部评分
|