https://leetcode.com/problems/reverse-string
난이도 : easy
문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라.
hello 있다면 말그대로 olleh 뒤집어 구현 합니다.
투 포인터(Two Pointer)를 이용한 전통적인 방식으로 풀이하였습니다. 투포인터는 2개의 포인터를 이용해 범위를 조정해 가는 방식으로 구현 하였습니다.
시간복잡도 : O(N) 공간복잡도 : O(N)
class Solution {
public:
void reverseString(vector<char>& s) {
// two pointer 활용
int start = 0;
int end = s.size() - 1;
while(start <= end) {
swap(s[start], s[end]);
start++;
end--;
}
}
};
stl reverse 를 활용한 풀이
stl 에서 제공하는 reverse 를 이용하면 간단하게 풀이 할 수 있습니다.
reverse(begin, end) : [begin, end)의 순서를 역순으로 만듭니다.
시간복잡도 : O(N) - 복잡도는 아래 블로그를 참고 하였습니다.
class Solution {
public:
void reverseString(vector<char>& s) {
// stl reverse
reverse(s.begin(), s.end());
}
};
17. Letter Combinations of a Phone Number (0) | 2021.09.04 |
---|---|
49. Group Anagram (0) | 2021.09.04 |
125. Valid Palindrome (0) | 2021.09.04 |
704. Binary Search (0) | 2021.09.04 |
16. 3Sum Closest (0) | 2021.09.04 |
댓글 영역