Leetcode练习(Python):哈希表类:第3题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
Posted 桌子哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode练习(Python):哈希表类:第3题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。相关的知识,希望对你有一定的参考价值。
题目:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
思路:
使用哈希表变得简单了很多,使用暴力法很容易超时。
程序:
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
length = len(s)
if length <= 0:
return 0
if length == 1:
return 1
head = 0
max_length = 0
myHashMap = {}
for index in range(length):
if s[index] in myHashMap and head <= myHashMap[s[index]]:
head = myHashMap[s[index]] + 1
else:
max_length = max(max_length, index - head + 1)
myHashMap[s[index]] = index
return max_length
以上是关于Leetcode练习(Python):哈希表类:第3题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。的主要内容,如果未能解决你的问题,请参考以下文章