-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathjs.js
44 lines (40 loc) · 979 Bytes
/
js.js
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
console.log = () => {}
/**
* @param {string} s
* @return {number}
*/
var longestSemiRepetitiveSubstring = function (s) {
console.log('###')
const currentFreqs = {}
let left = 0
let right = 1
let sizeMax = 1
for (left = 0; left < s.length; left++) {
for (right = left + 1; right <= s.length; right++) {
const str = s.slice(left, right).split('')
let seenPair = false
let size = 0
console.log('START', str)
for (let i = 0; i < str.length; i++) {
console.log(str, str[i], i)
if (str[i] === str[i + 1]) {
if (!seenPair) {
seenPair = true
size++
} else {
size++
break
}
} else {
size++
}
}
// if (str.length >= 2 && str[str.length - 2] !== str[str.length - 1]) {
// size++
// }
console.log('END', str, size)
sizeMax = Math.max(sizeMax, size)
}
}
return sizeMax
}