LeetCode Task16.无重复字符的最长子串
程序员文章站
2024-03-19 19:22:22
...
题目
解答
代码
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
lb=[]
n=1
k=0
if len(s)==1:
return 1
elif len(s)==0:
return 0
else:
for i in range(1,len(s)):
a=s[k:k+n].find(s[i])
if a<0:#不在
n+=1
lb.append(n)
else:#在
lb.append(n)
n=n-a
k=k+a+1
return max(lb)
思路
- 当s长度 ≤ 1时,直接返回其长度
- 当s长度>1时,开始遍历查找:
- k表示寻找的子字符串的开头位置
- n表示子字符串的长度
- a表示子字符串里出现s[i]的位置
-
lb记录子字符串的长度
- 当s[i]不在子字符串里时,增加子字符串长度n,记录长度,继续遍历
- 当s[i]在子字符串里时,先记录长度,n减掉重复位置前的个数,k移到重复位置的后一位,继续遍历。
结果
上一篇: UVA227 Puzzle谜题
下一篇: 谈谈自动化测试框架之PO设计模式
推荐阅读
-
无重复字符的最长子串
-
LeetCode Task16.无重复字符的最长子串
-
无重复字符的最长子串
-
刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串
-
每天一道LeetCode-----给定字符串s和字符数组words,在s中找到words出现的位置,words内部字符串顺序无要求
-
无重复字符的最长子串-滑动窗口法-Python2.7实现
-
Leetcode 3. 无重复字符的最长子串
-
3. Longest Substring Without Repeating Characters(无重复字符的最长子串)
-
[LeetCode]3. Longest Substring Without Repeating Characters无重复字符的最长子串
-
3. Longest Substring Without Repeating Characters/无重复字符的最长子串