3. 无重复字符的最长子串位运算

字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 时间复杂度是 O(N*N),每次拿到新的字符都要和之前的做比较
class Solution {
func lengthOfLongestSubstring(_ s: String) -> Int {
var tmp = ""
var count = 0
for ch in s {
if let index = tmp.firstIndex(of: ch) {
tmp.removeSubrange(tmp.startIndex...index)
}
tmp.append(ch)
count = max(count, tmp.count)
}
return count
}
}

利用哈希表,存储对应重复下标,减少比较次数

1


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!