회문 판별기

문제


문자열이 주어질 떄 회문인지 판별하는 프로그램을 작성하시오

 

입력


문자열은 소문자로만 공백없이 들어옵니다.

 

예시


const test_case1 = 'racecar' // 'palindrome'
const test_case2 = 'boob' // 'palindrome'
const test_case3 = 'hello' // 'not palindrome'

 

풀이


function checkPalindrome(str) {
    const lastLength = str.length - 1;
    const _len =
        str.length % 2 === 1 ? lastLength / 2 - 1 : parseInt(lastLength / 2);
    let result = 'palindrome';
    for (let i = 0; i <= _len; i++) {
        if (str[i] !== str[lastLength - i]) {
            result = 'not palindrome';
            break;
        }
    }
    return result;
}

문자열의 마지막 인덱스를 변수로 선언합니다.

회문을 판별하기 위해서 홀수일떄 짝수일때 나눠서 길이를 설정합니다. 왜냐하면 회문의 중간값을 중복 검사를 하지 않기 위해서 입니다.

결과값을 회문으로 설정 후 양쪽 값을 확인하면서 다른 경우 회문이 아닌걸로 하고 반복문을 중단하고 결과값을 반환합니다.