24. 가장 긴 팰린드롬 ( Level 2 )

JavaScript logo

가장 긴 팰린드롬 ( Level 2 )

문제

앞뒤를 뒤집어도 똑같은 문자열을 palindrome이라고 합니다.
longest_palindrom함수는 문자열 s를 매개변수로 입력받습니다.
s의 부분문자열중 가장 긴 palindrom의 길이를 리턴하는 함수를 완성하세요.
예를들어 s가 토마토맛토마토이면 7을 리턴하고 토마토맛있어이면 3을 리턴합니다.

나의 풀이

1
2
3
4
5
6
7
8
9
10
11
function longest_palindrom(s){
let res = 1, j
for ( let i = 1; i < s.length - 1; i++ ) {
j = 1;
while ( i >= j && i+j <= s.length && s[i+j] === s[i-j] ) {
j++
}
if ( j*2 -1 > res ) res = j*2 - 1
}
return res;
}

다른 사람의 풀이

1
2
3
4
5
6
7
8
9
function longest_palindrom(s){
if (s === s.split("").reverse().join("")) {
return s.length;
} else {
var A = longest_palindrom(s.substring(0, s.length-1));
var B = longest_palindrom(s.substring(1, s.length));
return Math.max(A, B);
}
}

마무리

개인적으로 공부한 내용을 정리한 것이기 때문에 반말을 사용한 점 양해 부탁드립니다.
잘못된 부분이나 피드백이 있으시다면, 댓글에 남겨주시면 감사하겠습니다!

공유하기