RSS DEV 커뮤니티

Javascript의 Leet Code Palindrome 문제

문제는 주어진 정수가 회문인지 확인하는 것입니다. 한 가지 방법은 숫자를 문자열로 변환하고 문자열을 반전시킨 다음 원래 문자열과 비교하는 것입니다. 이 접근 방식은 추가 문자열 및 배열 생성으로 인해 O(n)의 시간 복잡도와 O(n)의 공간 복잡성을 갖습니다. 보다 효율적인 방법은 문자열 변환 없이 수학적 방법을 사용하는 것입니다. 이 접근 방식은 숫자의 절반 자릿수만 처리하기 때문에 O(log n)의 시간 복잡도를 갖습니다. 공간 복잡도는 입력 크기에 관계없이 두 개의 변수 만 사용하기 때문에 O (1)입니다. 최적화된 솔루션에는 음수와 한 자리 숫자에 대한 조기 반환이 포함되며, 숫자의 절반만 반전되며 일정한 추가 공간을 사용합니다. 짝수 및 홀수 길이 숫자를 모두 처리하며 문자열 변환이 필요하지 않습니다. 해결책은 회문으로 결정되는 숫자 1221의 예로 입증됩니다. 전반적으로 두 번째 접근 방식은 첫 번째 접근 방식보다 더 효율적이고 선호됩니다.
favicon
dev.to
Leet Code Palindrome problem in Javascript