题目描述
给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
示例
1 2 3
| 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
|
1 2 3
| 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
|
提示:
0 <= s.length <= 5 * 104
s
由英文字母、数字、符号和空格组成
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| func lengthOfLongestSubstring(_ s: String) -> Int { var map = [Character: Int]() var start = -1 var maxLength = 0 for (index, char) in s.enumerated() { if let idx = map[char], idx > start { start = idx } map[char] = index maxLength = max(maxLength, index - start) } return maxLength }
|