
문제링크
Palindrome Linked List - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
기억하면 좋을 것
배열의 순서를 정반대로 뒤바꾸고 싶을때 어떻게 할까 ?
바로 reverse 배열 내장 함수를 사용하면 된다.
그런데 문자열을 정반대로 바꾸어 주고 싶다면 ?
- split()
- reverse()
- join()
세가지를 기억하자
split('') 은 문자열을 잘라 새로운 배열을 반환한다.reverse()는 배열의 순서를 역순으로 만든다. (배열 반환)join('') 은 배열을 문자열로 만든다.(문자열 반환)그렇기 때문에 기존문자열.split('').reverse().join() 을 해 주면 기존 문자열이 배열이 되었다가, 역순으로 바뀌고 다시 문자열이 되게 된다. 이렇게 하면 내가 원하는 결과를 얻을 수 있다.
split().reverse().join() 의 속도는 어떨까?
https://jsbench.me/4bkfflcm2z
JSBench.me - JavaScript performance benchmarking playground
jsbench.me
구글링 해 보니 다른 방법들에 비해 그렇게 빠르진 않은 것 같다
한줄에 해결되는건 깔끔하고 좋아보인다
문자열을 reverse 해 줄 때
for of 로 돌면서function reverseString2(str) {
let reversed = '';
for (const character of str) {
reversed = character + reversed
}
return reversed
}
이렇게 해 줄 수도 있구나.. 이건 보기 쉽고 속도도 괜찮은 방법 같다
소감
확실히 욕심을 버리고 easy로 기초를 다지자고 생각하니 마음도 편하고 기분도 좋다 !
오늘처럼만 남들 잘 하는거 신경쓰지말고 나에게만 집중하고 싶다.
해결 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var isPalindrome = function(head) { | |
let stack = ""; | |
let reverse = ""; | |
while(head.val != undefined){ | |
stack+=head.val; | |
if(!head.next) break; | |
else {head= head.next;} | |
} | |
reverse = stack.split('').reverse().join(''); | |
return stack === reverse; | |
}; |
Submission Detail


'알고리즘 > leetcode' 카테고리의 다른 글
[Leetcode/JS] 111. Minimum Depth of Binary Tree (0) | 2023.07.13 |
---|---|
[leetcode/JS] 234. Palindrome Linked List / Javascript (0) | 2022.08.27 |
[leetcode/JS] 70. Climbing Stairs / Javascript (0) | 2022.08.23 |
[leetcode/JS] 617. Merge Two BInary Trees / Javascript (0) | 2022.05.12 |
[leetcode/JS] 28. Implement strStr() /Javascript (0) | 2022.05.12 |
댓글