思路:
Swift通过代码:
func lengthOfLongestSubstring(_ s: String) -> Int {
var maxLong = 0
var setString = Set<Character>()
var startIndex = 0
let ss = Array(s)
for (_, item) in s.enumerated() {
if !setString.contains(item) {
setString.insert(item)
} else {
maxLong = max(maxLong, setString.count)
while ss[startIndex] != item {
//不用移除当前重复的item,因为反正要insert。正好else没有走insert,正好抵消
setString.remove(ss[startIndex])
startIndex += 1
}
//startIndex记录重复字符的后一位
startIndex += 1
}
}
return max(maxLong, setString.count)
}