[LeetCode] Reverse String(JS)

nRecode·2020년 9월 4일
0

Algorithm

목록 보기
3/48

문제

Write a function that reverses a string. The input string is given as an array of characters char[].
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.

입출력 예

example 1
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]

example 2
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

접근

추가로 다른 배열을 할당하지 않고 들어온 input 배열의 index 순서를 바꾸는 문제이다.
그렇기 때문에 unshift 같은 메소드로 배열에 새로 넣을 수 없다.

  1. 0번째 인덱스와 n번째 인덱스를 바꾸고 다음은 1번째 인덱스와 n-1번째 인덱스를 바꾸는 과정으로 진행한다.
  2. 변수 두개를 선언해서 반복이 돌 때마다 해당 인덱스를 1씩 더하거나 빼준다.

풀이

var reverseString = function(s) {
     let left = 0;
     let right = s.length - 1;
    
     while(left < right){
         let temp = s[left];
         s[left] = s[right];
         s[right] = temp;
         ++left;
         --right;
     }
     return s;
    
};

인덱스를 활용해서 간단하게 풀 수 있는 문제였다!

추가로

Life is short...

var reverseString = function(s) {
    return s.reverse();
};

😀

profile
안정성, 확장성 있는 서버를 구축하고 가꾸는 개발자를 목표로 공부하고 있습니다. 🤔🤔🤔🤔 부족하기에 맞지 않는 내용이 있을 수 있습니다. 가감없이 피드백 해주시면 정말 감사하겠습니다..🙏

0개의 댓글