https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
func lengthOfLongestSubstring(_ s: String) -> Int {
var maxLength = 0
var start = 0
var end = 0
var storeDic = Dictionary<Character, Int>()
for (index, charStr) in s.enumerated() {
end = index
if storeDic.keys.contains(charStr) {
start = max(storeDic[charStr]!, start)
}
maxLength = max(end - start + 1, maxLength);
//标识当前位置后一位开始不重复,以便正确更新start
storeDic.updateValue(end + 1, forKey: charStr)
}
return maxLength
}
网友评论