문제
문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라
풀이 1) 투 포인터를 이용한 스왑
투포인터에 대해서 간단하게 설명하자면 단어 그대로 2개의 포인터를 이용해 범위를 조정해가며 풀이하는 방식을 말한다. 여기서는 점점 더 범위를 좁혀 가며 스왑하는 형태로 풀이할 수 있다. 문제에서 ‘리턴 없이 리스트 내부를 직접 조작하라’는 제약사항이 있으므로 다음과 같이 s 내부를 스왑하는 형태로 풀이하면 된다
def reverseString(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
풀이 2) 파이썬 다운 방식
def reverseString(self, s: List(str)) -> None :
s.reverse()
or
def reverseString(self, s: List(str)) -> None:
s[:] = s[::-1]
PREVIOUSLeetCode 125번 <유효한 팰린드롬>