Fork me on GitHub

Longest Substring Without Repeating Characters

题目介绍

LeetCode 3. Longest Substring Without Repeating Characters,题目的意思寻找 String 中元素不重复的最长子序列。

解题思路

这一题我使用的 Two Pointers 的算法,使用了 start 和 end 两个指针,右指针不断的进行右移,没有发现重复元素的情况下,遍历区间内有没有相似元素,如果有直接左指针变为 i+1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
func lengthOfLongestSubstring(_ s: String) -> Int {
let array = Array(s)
var length = 0
var left = 0, right = 0
var i = 0
while right < array.count {
i = left
while i < right {
if array[i] == array[right] {
left = i + 1
break
}
i += 1
}
length = max(length, right - left + 1)
right += 1
}
return length
}
}

版权声明



Ivan’s Blog by Ivan Ye is licensed under a Creative Commons BY-NC-ND 4.0 International License.
叶帆创作并维护的叶帆的博客博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Ivan’s Blog | 叶帆的博客博客( http://yeziahehe.com ),版权所有,侵权必究。

本文链接:http://yeziahehe.com/2017/10/11/LongestSubstringWithoutRepeatingCharacters/