-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlongestSubstringWithoutRepeatingChars.js
More file actions
46 lines (40 loc) · 1.14 KB
/
longestSubstringWithoutRepeatingChars.js
File metadata and controls
46 lines (40 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
* @param {string} s
* @return {number}
*/
//first version
// var lengthOfLongestSubstring = function(s) {
// const arr = s.split("")
// let letters = []
// let maxCount = 0
// let count = 0
// for (let i = 0; i < arr.length; i++) {
// const index = letters.findIndex((char) => char === arr[i])
// if (index !== -1) {
// i = i - letters.length + index + 1
// count = 0
// maxCount = maxCount < letters.length ? letters.length : maxCount
// letters = []
// }
// count++
// letters.push(arr[i])
// }
//
// maxCount = maxCount < count ? count : maxCount
// return maxCount
// };
const lengthOfLongestSubstring = function(s) {
const arr = s.split("")
let letters = []
let maxCount = 0
for (let i = 0; i < arr.length; i++) {
if (letters.includes(arr[i])) {
letters = letters.slice(letters.indexOf(arr[i]) + 1)
}
letters.push(arr[i])
maxCount = Math.max(maxCount, letters.length)
}
return maxCount
};
const example = "abc"
console.log(lengthOfLongestSubstring(example))