본문 바로가기

알고리즘

[파이썬 알고리즘 인터뷰] 문자열 뒤집기

728x90
 

Reverse String - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

나의 풀이

def reverseString(self, s : List[str]) -> None:
    s = s[::-1]

원래는 정상적으로 작동해야 하는 코드이지만 리트코드의 특성 상 작동하지 않는다. s[:]=s[::-1]로 트릭을 사용할 수 있지만... 이를 생각한다는게 흠....

풀이 # 1

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()
  • str.reverse() : 리스트에서만 사용가능

파이썬의 특징을 잘 살린 코드라 할 수 있다. reverse()를 통해 간단하게 해결하였다.

반응형