763. Partition Labels
문제
문자열 s가 소문자 영문으로 주어질 때, 파티션을 나누려고 한다.
파티션마다 중복되는 문자는 없어야하고, 가능한 최대의 파티션의 수를 나
눈다고 가정했을 때 파티션 각 길이를 배열로 리턴하는 solution 만들기
풀이
medium난이도라 그런지 문제가 한번 더 꼬인 느낌이라서 차근차근 풀어봤다.var partitionLabels = function (S) { const answer = []; let left = 0; while (left < S.length) { let start = left; let right = S.lastIndexOf(S[left]); while (left < right) { left++; let temp = S.lastIndexOf(S[left]); right = Math.max(right, temp); } left++; answer.push(right - start + 1); } return answer; };
left, start, right의 3가지 포인터를 활용해서 answer 배열에 각 파티션의 사이즈를 담아 리턴
while문 중간의 left++의 경우 빌트인 메서드 lastIndexOf에서 [left]자리에 표현식인 left++를 넣어 해결할 수도 있음