Problem Solving 2022. 8. 22. 22:44

[LeetCode] 344. Reverse String (JS)

목차
  1. 핵심 아이디어
  2. 복잡도
  3. 설명
  4. 코드 (Javascript)

https://leetcode.com/problems/reverse-string/

 

Reverse String - 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

핵심 아이디어

  • js에 Array.reverse() 가 있으니 그걸 쓰거나...
  • left, right two pointer로 양쪽에서 반복하며 swap하면 배열이 뒤집어진다
    • js에서 swap할 때는 destructing asssignment [a,b] = [b,a] 를 활용할 수 있다

 

복잡도

  • 시간 복잡도: O(N)
    • two pointer로 배열 절반 순회
  • 공간 복잡도: O(1)
    • left, right 포인터 변수 2개

 

설명

주어진 문자 배열을 in-place, 배열 추가로 만드는 것 없이 O(1)의 공간을 사용하여 뒤집는 문제이다. left, right pointer로 움직이면서 뒤집으면 배열이 뒤집어진다.

이번 문제로 Array.reverse()가 원본 배열을 바꾸는 destructive한 함수임을 알게 되었다. 조심해서 써야겠다

 

코드 (Javascript)

풀이 1...

/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function(s) {
    s.reverse();
};

풀이 2 ( Two pointers )

/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function(s) {
    let leftIdx = 0;
    let rightIdx = s.length - 1;
    
    while(leftIdx < rightIdx) {
        [s[leftIdx], s[rightIdx]] = [s[rightIdx], s[leftIdx]];        
        
        leftIdx += 1;
        rightIdx -= 1;
    }
};
저작자표시 (새창열림)

'Problem Solving' 카테고리의 다른 글

[LeetCode] 819. Most Common Word (JS)  (0) 2022.09.03
[LeetCode] 937. Reorder Data in Log Files (JS)  (0) 2022.09.03
[LeetCode] 125. Valid Palindrome (JS)  (0) 2022.08.22
[LeetCode] 153. Find Minimum in Rotated Sorted Array (JS)  (0) 2022.08.22
[LeetCode] 152. Maximum Product Subarray (JS)  (0) 2022.08.21
  1. 핵심 아이디어
  2. 복잡도
  3. 설명
  4. 코드 (Javascript)
'Problem Solving' 카테고리의 다른 글
  • [LeetCode] 819. Most Common Word (JS)
  • [LeetCode] 937. Reorder Data in Log Files (JS)
  • [LeetCode] 125. Valid Palindrome (JS)
  • [LeetCode] 153. Find Minimum in Rotated Sorted Array (JS)
개발자 이우진
이우진 기술 블로그
  • All (86)
    • Spring Framework (20)
    • MSA (7)
      • Event Driven Architecture (3)
    • Java (3)
    • Flink (2)
    • Computer Science (9)
      • Object Oriented Programming (3)
    • Problem Solving (15)
    • Design Pattern (0)
    • React (4)
    • Javascript (2)
    • Web (3)
    • Tools & Environment (3)
    • C++ (2)
    • misc (5)
    • Essay (3)
      • 기술 회고 (5)
  • 홈
  • 태그
  • 관리자
  • 글쓰기
hELLO · Designed By 정상우.v4.2.2
[LeetCode] 344. Reverse String (JS)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.