91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么找出無重復字符的最長子串

發布時間:2022-03-22 16:28:25 來源:億速云 閱讀:262 作者:iii 欄目:大數據

這篇文章主要介紹“python怎么找出無重復字符的最長子串”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python怎么找出無重復字符的最長子串”文章能幫助大家解決問題。

【題目】

給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。

示例 1:
輸入: "abcabcbb"
輸出: 3 
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
    
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
    
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
     請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。

【思路】

1、暴力破解:兩層for循環,遍歷所有子串,判斷是否有重復元素,并記錄最長子串長度。

2、hash表:遍歷數組,使用hash存儲元素及其下標。遍歷時,當元素nums[i]存在于hash表時,需要更新其下標,同時更新最長子串長度。

【代碼】

python版本

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        d = {}
        last_index = 0
        res = 0
        for i, si in enumerate(s):
            # 在dict中,則子串長度可能更長
            # last_index更新為d[si] + 1
            if si in d and d[si] >= last_index:
                res = max(res, i - last_index)
                last_index = d[si] + 1
            
            # 更新dict的si
            d[si] = i
            
        # 注意,還未和最后一段進行比較
        res = max(res, len(s) - last_index)
        return res

關于“python怎么找出無重復字符的最長子串”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通海县| 介休市| 右玉县| 辉县市| 高平市| 聂荣县| 安陆市| 阿尔山市| 海晏县| 宜良县| 霞浦县| 平凉市| 乌审旗| 长顺县| 张家口市| 乳山市| 浦北县| 额敏县| 承德市| 烟台市| 洛南县| 乌兰县| 新河县| 金秀| 凌海市| 柏乡县| 搜索| 来宾市| 庄河市| 海淀区| 社旗县| 磐石市| 申扎县| 龙海市| 油尖旺区| 肇庆市| 朝阳区| 汨罗市| 同江市| 西林县| 遵化市|