无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 无重复字符的最长子串是 "abc",其长度为 3。
示例 2:
输入: "bbbbb"
输出: 1
解释: 无重复字符的最长子串是 "b",其长度为 1。
示例 3:
输入: "pwwkew"
输出: 3
解释: 无重复字符的最长子串是 "wke",其长度为 3。
请注意,答案必须是一个子串,"pwke" 是一个子序列 而不是子串。
Python:
思路:
1.定义 i 记录 所有不重复元素组成 res 的最大长度
2.res 拼接所有不重复的char 字母
3.如果有重复的,找到重复字母char的 index,把char之后的字符串 重新 赋值给 res、 res 再拼接上 char
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
res = ""
i = 0
for char in s:
if char not in res:
res += char
else:
res = res[res.find(char) + 1:]
res += char
if len(res) > i:
i = len(res)
return i
本文探讨了如何在给定字符串中寻找最长的无重复字符子串,通过实例解析算法思路,介绍了Python实现方法,包括如何维护当前无重复字符的子串并更新最大长度。
215

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



