var partitionLabels = function (s) {
let map = new Map()
let res = []
for (let i = 0; i < s.length; i++) {
let char = s.charAt(i)
if (!map.has(char)) {
res.push(char)
map.set(char, true)
} else {
let index = res.findIndex(str => str.indexOf(char) > -1)
let str = ''
for (let j = index; j < res.length; j++) {
str += res[j]
}
str = str + char
res = res.slice(0, index)
res.push(str)
}
}
console.log(res)
return res.map(str => str.length)
};
var partitionLabels = function (s) {
let maxPos = {}
for (let i = 0; i < s.length; i++) {
let char = s.charAt(i)
maxPos[char] = i
}
let res = []
let sliceArr = []
let sliceStart = 0
let sliceEnd = 0
for (let i = 0; i < s.length; i++) {
let charMaxPos = maxPos[s.charAt(i)]
sliceEnd = Math.max(sliceEnd, charMaxPos)
if (i === sliceEnd) {
res.push(sliceEnd - sliceStart + 1)
sliceArr.push(s.slice(sliceStart, sliceEnd + 1))
sliceStart = i + 1
}
}
console.log(sliceArr)
return res
}
console.log(partitionLabels("ababcbacadefegdehijhklij"))