문제풀이 - 344. Reverse String
문제
https://leetcode.com/problems/reverse-string/
1. 접근
접근1. 내장 함수 사용
내장 함수가 이미 잘 구현되어 있으니 reverse() 사용. 리턴 없이 있는 그대로의 객체 변경을 요했으니 슬라이싱은 아니다.
접근2. 투 포인터 알고리즘 사용
2. 제출한 답(1)
1
2
3
class Solution:
def reverseString(self, strs: List[str]) -> None:
strs.reverse()
시간 복잡도
reverse의 시간복잡도는 O(n)이라고 한다.
3. 두 번째 답(2)
투 포인터라는 접근 방법이 떠올랐다.
문제풀이 - 2824. Count Pairs Whose Sum is Less than Target
1
2
3
4
5
6
7
8
class Solution:
def reverseString(self, strs: List[str]) -> None:
left, right = 0, len(strs) - 1
while left < right:
strs[right], strs[left] = strs[left], strs[right]
left += 1
right -= 1
#left, right = left + 1, right - 1
처음에는 자리 바꾸기를 위한 변수를 따로 뒀었다가, 파이썬엔 그것이 필요 없다는 것을 깨달아 수정.
간결하긴 한 것 같다.
시간 복잡도
시간복잡도는 O(n)이다.
This post is licensed under CC BY 4.0 by the author.