美文网首页
swift_无重复字符的最长子串

swift_无重复字符的最长子串

作者: GAME666 | 来源:发表于2019-06-21 17:49 被阅读0次

    给定一个字符串,请你找出其中不含有重复字符的 最长子串的长度。

    示例 1:
    输入: "abcabcbb"
    输出: 3
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

    示例 2:
    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

    示例 3:
    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
    请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

        func lengthOfLongestSubstring(_ s: String) -> Int {
            var maxLength = 0,start = 0,end = 0
            var charactersArr = Array(s)
            var cacheDic:[Character: Int] = [:]
            let length = s.count
            while start < length && end < length {
                let char = charactersArr[end]
                if let cacheVal = cacheDic[char] {
                    start = max(start, cacheVal)
                }
                end += 1
                maxLength = max(maxLength, end - start )
                cacheDic[char] = end
            }
            return maxLength
        }
    

    相关文章

      网友评论

          本文标题:swift_无重复字符的最长子串

          本文链接:https://www.haomeiwen.com/subject/jtyuqctx.html