🔊
파이썬 알고리즘 인터뷰
책을 참고했습니다.
Do not allocate extra space for another array, you must do this by > modifying the input array in-place with O(1) extra memory.
다른 추가 공간을 사용하지 않고 문자열을 뒤집어야한다.
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
가장 기본적인 앞-뒤 문자 교환
"""
ln = len(s)
for i in range(int(ln / 2)):
tmp = s[i]
s[i] = s[ln - 1 - i]
s[ln - 1 - i] = tmp
def reverseStringTwoPointer(self, s: List[str]) -> None:
"""
투포인터 방법
"""
left, right = 0, len(s) - 1
while left < right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
def reverseStringListComp(self, s: List[str]) -> None:
s[:] = s[::-1] # 가장 빠름