[문제 설명]
전 세계의 알파벳들이 기차놀이를 하기 위해서 한 장소에 모였습니다.
뒤죽박죽 같은 스펠링의 알파벳들도 섞여 들어가 있습니다.
여기에서 반복 없이 가장 긴 알파벳 길이를 구하는 함수, solution을 완성해주세요.
예를 들어, 문자열 s가 `abssccbsbsv` 일 때, 반복 없이 가장 긴 알파벳 길이는 3입니다.
[제한 사항]
- 기차놀이의 참가한 알파벳은 중복될 수 있습니다.
- 반복 없는 가장 긴 문자열을 찾습니다.
[입력 형식]
- s는 길이가 1 이상 1,000 이하인 문자열입니다.
[출력 형식]
- 반복 없이 가장 긴 알파벳 길이를 출력합니다.
/**
* @param s {string}
* @returns {number}
*/
function solution(s) {
const alphabets = {};
let fromIndex = 0;
return s.split("").reduce((longest, c, i) => {
if (fromIndex <= alphabets[c]) fromIndex = alphabets[c] + 1;
alphabets[c] = i;
return Math.max(longest, i - fromIndex + 1);
}, 0);
}
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers] (완전탐색) Lv 2. 카펫 (0) | 2023.01.27 |
---|---|
[Programmers] (Summer/Winter Coding(~2018)) Lv 2. 영어 끝말잇기 (0) | 2023.01.27 |
[Programmers Test] (2회차 코딩테스트) No 4. palindrome (0) | 2023.01.27 |
[Programmers Test] (2회차 코딩테스트) No 3. MostAppearNumber (0) | 2023.01.27 |
[Programmers Test] (2회차 코딩테스트) No 1. binaryNumber (0) | 2023.01.27 |
댓글