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题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode练习(Python):哈希表类:第138题: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个

Leetcode练习(python):链表类:第82题:删除排序链表中的重复元素 II:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

Leetcode练习(Python):链表类:第206题:反转链表:反转一个单链表。

Leetcode练习(Python):链表类:第92题:反转链表 II:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

Leetcode练习(Python):链表类:第61题:旋转链表:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。

Leetcode练习(Python):链表类:第23题:合并K个排序链表:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。