*Udemy의 "The Coding Interview Bootcamp: Algorithms + Data Structures" 강의에서 학습한 내용을 정리한 포스팅입니다.
*https://soldonii.github.io에서 작성한 글을 티스토리로 옮겨온 포스팅입니다.
*자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :)
지문
// Given a string, return true if the string is a palindrome
// or false if it is not. Palindromes are strings that
// form the same word if it is reversed. *Do* include spaces
// and punctuation in determining if the string is a palindrome.
// --- Examples:
// palindrome("abba") === true
// palindrome("abcdefg") === false
1번 풀이 : reverse() 또는 reduce()
1. 문자열을 배열로 변환하고 역순으로 바꿔준다.
2. 원본 vs. 바꾼 문자열 비교하여 같으면 true, 아니면 false.
function palindrome(str) {
const reversed = str.split('').reverse().join('');
// 또는 const reversed = str.split('').reduce((rev, char) => char + rev, '');
return reversed === str ? true : false;
}
2번 풀이 : every()
1. 문자열을 배열로 변환한다.
2. every()를 이용하여 현재 문자열과 마지막 문자열이 서로 일치하는지 비교.
*불필요한 비교를 반복하기 때문에 권장되는 풀이법은 아님.
function palindrome(str) {
return str.split('').every((char, idx) => char === str[str.length - 1 - idx]);
}
'Javascript 공부 > 알고리즘 풀이' 카테고리의 다른 글
자바스크립트 알고리즘(7) - reverseString (0) | 2019.08.26 |
---|---|
자바스크립트 알고리즘(6) - reverseInt (0) | 2019.08.26 |
자바스크립트 알고리즘(4) - maxChar (0) | 2019.08.26 |
자바스크립트 알고리즘(3) - fizzbuzz (0) | 2019.08.26 |
자바스크립트 알고리즘(2) - chunk (0) | 2019.08.26 |
댓글