😎풀이

  1. 투 포인터 사용
  2. s를 순회
    2-1. 영문이 아닌 경우가 나올 경우 해당 케이스 건너뜀
    2-2. 두 포인터 모두 영문을 가르킬 경우 swap
  3. s를 문자열 화
  4. 반환
function reverseOnlyLetters(s: string): string {
    const splitS = s.split('')
    const isNotEng = /[^a-zA-Z]/
    let l = 0
    let r = s.length - 1
    while(l <= r) {
        if(isNotEng.test(splitS[l])) {
            l++
            continue
        }
        if(isNotEng.test(splitS[r])) {
            r--
            continue
        }
        [splitS[l], splitS[r]] = [splitS[r], splitS[l]]
        l++
        r--
    }
    return splitS.join('')
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글