给定一个字符串,找出不含有重复字符的最长子串的长度。
示例 1:
输入: “abcabcbb” 输出: 3 解释: 无重复字符的最长子串是 “abc”,其长度为 3。 示例 2:
输入: “bbbbb” 输出: 1 解释: 无重复字符的最长子串是 “b”,其长度为 1。 示例 3:
输入: “pwwkew” 输出: 3 解释: 无重复字符的最长子串是 “wke”,其长度为 3。 请注意,答案必须是一个子串,“pwke” 是一个子序列 而不是子串。
class Solution: def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ n = len(s) if n==1: return 1 set_dict = dict() start_tag, max_step = 0, 0 for k, j in enumerate(s): if j in set_dict and start_tag <= set_dict[j]: start_tag = set_dict[j] + 1 temp = k - start_tag + 1 set_dict[j] = k if max_step < temp: max_step = temp return max_step