[리트코드] 344 Reverse String
업데이트:
새해 첫날입니다!! 오늘부터 매일 매일 하나씩 리트코드 문제를 풀어보려고 합니다.
리트코드는 영어로 되있다는 단점이 있지만 문제를 어떻게 풀어야 효율적으로 풀 수 있는지를 여러 사람들과 토론하며 고민하며 풀 수 있다는 장점이 있습니다.
저에겐 큰 도움이 될거같아서 시작하게 되었습니다.
보면 진짜 간단한 문제입니다. 배열을 역으로 만들어주면 되지만 단순하게 접근한다면 이중포문을 사용해서 시간복잡도가 n^2가 될수도 있고 불필요한 배열을 하나 더 생성하여 공간복잡도가 증가할 수 있습니다.
하지만 투포인터를 사용하여 처음과 끝 숫자를 변경해주면서 진행한다면 시간복잡도가 n으로 줄어들 수 있습니다.
풀이는 다음과 같습니다.
Source Code:
class Solution {
public:
void reverseString(vector<char>& s) {
int Start = 0, End = s.size()-1;
while(Start < End){
char tmp = s[Start];
s[Start++] = s[End];
s[End--] = tmp;
}
}
};
궁금하신 점은 댓글 남겨 주세요!!
Summary
- 새해 복 많이 받으세요!!
- 2021년엔 제가 부지런하길 기원하고 있습니다.
댓글남기기