题目描述
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given “abcabcbb”, the answer is “abc”, which the length is 3.
Given “bbbbb”, the answer is “b”, with the length of 1.
Given “pwwkew”, the answer is “wke”, with the length of 3. Note that the answer must be a substring, “pwke” is a subsequence and not a substring.
- 给你一个串,求没有重复字符的最长子串的长度。
- 样例:
给定串“abcabcbb”,答案是‘abc’,长度是3。
给定串 “bbbbb”,答案是‘b’,长度是1。
给定串 “pwwkew”,答案是‘wke’,长度是3,注意必须是子串,‘pwke’是子序列而不是子串。
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
maxn, index, dict,start,lenS = 0, 0, {},0,len(s)
for i in range(0, lenS):
if s[i] in dict and dict[s[i]] >= start:
start = dict[s[i]] + 1
index = i - dict[s[i]]
else:
index += 1
if index > maxn:
maxn = index
dict[s[i]] = i
return maxn
maxn:最大长度
index:遍历到当前的最大长度
dict:某个字母存在的前一个位置。
start:当前位置最大长度的开始计数位置。
本文介绍了一种求解字符串中无重复字符的最长子串长度的算法,并通过实例进行说明。该算法利用字典记录字符位置,双指针法更新最长子串长度。
504

被折叠的 条评论
为什么被折叠?



