344. Reverse String

mmmYoung·2022년 3월 16일
0

리트코드

목록 보기
12/21

문제 설명

Write a function that reverses a string. The input string is given as an array of characters s.You must do this by modifying the input array in-place with O(1) extra memory.

문자 배열 s가 입력으로 주어질때, reverse 를 출력하는 함수를 작성하시오. 단 배열을 그 자리에서 바꾸어야 하고, 추가적인 메모리는 O(1)이 되어야 한다.

출력예시

접근 방법

첫번째 시도

char형 tmp를 통해 시작과 끝 원소부터 중간까지를 스왑하는 방법을 사용한다. (투 포인터)

소스코드

class Solution {
public:
    void reverseString(vector<char>& s) {
        int start=0;
        int end=s.size()-1;
        char tmp;
        while(start < end){
            tmp=s[start];
            s[start]=s[end];
            s[end]=tmp;
            start++;
            end--;
        }
        
    }
};

돌아보기

스왑 과정을 일일이 풀어쓰는 것 보다 , swap을 이용하는게 훨씬 간단하고 빠르다...
위 코드의 while문 내부를 다음과 같이 수정하면 41ms -> 26ms 까지 단축 가능!!

        while(start < end){
            swap(s[start++],s[end--]);
        }
profile
안냐세여

0개의 댓글