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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM