var isPalindrome = function(x) {
let strX = String(x).split('');
let reverseX = [...strX].reverse();
if(strX.toString() == reverseX.toString()){
return true;
} else {
return false;
}
};
console.log(isPalindrome(121121)); // true
var isPalindrome = function(x){
const s = x.toString();
if(s.length == 1){
return true;
}
const start = s[0];
const end = s[s.length-1];
if(start != end){
return false;
}
if(s.length == 2){
return true;
}
const subStr = s.substring(1, s.length-1);
return isPalindrome(subStr);
}
console.log(isPalindrome(123321)); // true;
본격적인 비교를 하기 전에 문자열의 길이로 1차 비교:
길이가 1 - 참
길이가 2이상, 첫요소와 마지막 요소(마주보는 요소)의 값이 다른 경우 - 거짓
길이가 2, 첫요소 == 마지막 요소 - 참
비교가 끝난 양끝 요소를 잘라내고 남은 문자열을 재귀로 다시 확인
더이상 평가할 요소가 없을 때까지 재귀를 한 후 return
return된 값을 출력해보면 123321은 true;
모든 값을 비교하겠다! => 문자열의 길이, 양끝의 값 비교로 1차 걸러내기
string을 배열로 만들기 => substring으로 원하는 부분을 잘라내기
for 반복문으로 끝까지 확인 => 재귀하면서 코드 재사용 => 걸러내는 과정을 반복하면서 효율이 오름