day01--無重復(fù)字符的最長子串

描述

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

示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重復(fù)字符的最長子串是 "abc",所以其長度為 3。

示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重復(fù)字符的最長子串是 "b",所以其長度為 1。

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

備注: 一下算法雖然能夠?qū)崿F(xiàn)功能,但是提交LeetCode時未通過,耗時太久,算法需優(yōu)化。

class Solution {
    func lengthOfLongestSubstring(_ s: String) -> Int {
        let length = s.count
        var hash = [Character: Int]()
        var i = 0, j = 0, max = 0
        
        while i < length && j < length {
            let character = s[s.index(s.startIndex, offsetBy: j)]
            if hash[character] == 0 || hash[character] == nil {
                hash[character] = 1
                j += 1
                max = (j - i) > max ? (j - i) : max
            } else {
                let character = s[s.index(s.startIndex, offsetBy: i)]
                hash[character] = 0
                i += 1
            }
        }
        
        return max;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目 給定一個字符串,請你找出其中不含有重復(fù)字符的最長子串的長度。 示例 示例 1: 輸入: "abcabcbb"...
    玖月晴閱讀 1,950評論 0 1
  • 需求 給定一個字符串,請你找出其中不含有重復(fù)字符的 最長子串 的長度。 示例 1:輸入: "abcabcbb"輸出...
    惑也閱讀 1,012評論 0 1
  • 1. 題目 給定一個字符串,請你找出其中不含有重復(fù)字符的 最長子串 的長度。 示例 1:輸入: "abcabcbb...
    sagfugetabf閱讀 2,433評論 0 1
  • 蜂巢浸膏品鑒: 第四天 今天吃完胃有寒往外代謝,整個食道有燒熱感,蜂巢浸膏是調(diào)理鼻炎的,胃是容納食物把它腐蝕掉的,...
    尹遜濤閱讀 332評論 0 1
  • 最近忙得不可開交。不對,是今年一直忙得不可開交,有很多單要趕。領(lǐng)導(dǎo)還在不斷的加單進(jìn)來,但是又不想增加人員,只有每天...
    Ttill閱讀 132評論 0 0

友情鏈接更多精彩內(nèi)容