알고리즘 공부/파이썬 알고리즘 인터뷰

02 문자열 뒤집기(Reverse string)

환성 2022. 1. 10. 16:53
728x90

문제 : 문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라.

 

예제:

Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

 

솔루션:

  • 투 포인터를 이용한 스왑

💡  투 포인터?  단어 그대로 2개의 포인터를 이용해 범위를 조정해가며 풀이하는 방식

 

def reverseString(self, s : List[str]) -> None:
  left, right = 0 , len(s) - 1
  while left < right:
    s[left], s[right] = s[right], s[left]  # 리턴 없이 내부 조작이므로 s의 왼쪽 오른쪽 스왑
    left += 1
    right -= 1
  • 파이썬을 이용
def reverseString(self, s : List[str]) -> None:
  s.reverse()   #reverse()를 이용함으로써 리스트를 뒤집는다. 
                # 혹은 s[:] = s[::-1]을 이용

 

문제 출처 : https://leetcode.com/problems/reverse-string/