Palindrome Check
Palindrome Check - Explanation
Problem Summary
Write a function that checks if a string is a palindrome (reads the same forwards and backwards).
Go to Problem →Detailed Explanation
이 문제는 **회문(palindrome) 판별 알고리즘**을 학습합니다. 회문은 앞에서 읽으나 뒤에서 읽으나 같은 문자열입니다. **기본 접근법: 뒤집어서 비교** 1. 문자열을 소문자로 통일 (대소문자 무시를 위해) 2. 문자열을 뒤집기 3. 원본과 뒤집은 문자열 비교 **예시: "racecar"** - 소문자: "racecar" - 뒤집기: "racecar" - 비교: "racecar" === "racecar" → true **예시: "hello"** - 소문자: "hello" - 뒤집기: "olleh" - 비교: "hello" === "olleh" → false **투 포인터 방법 (최적화)** 메모리를 아끼려면 양쪽 끝에서 시작해 중앙으로 이동하며 비교: ```javascript let left = 0, right = str.length - 1; while (left < right) { if (str[left] !== str[right]) return false; left++; right--; } return true; ``` **빈 문자열과 한 글자** 빈 문자열과 한 글자 문자열은 정의상 회문입니다.
Solution Code
function isPalindrome(str) {
const cleaned = str.toLowerCase();
return cleaned === cleaned.split('').reverse().join('');
}Key Concepts from This Problem
Common Mistakes
Hints
Complexity Analysis
Time Complexity
O(n)
Grows linearly with input size
Space Complexity
O(n)
Uses memory proportional to input size