본문 바로가기

기록

LeetCode 0344. Reverse String(Python)

문제

Write a function that reverses a string. The input string is given as an array of characters char[].

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

You may assume all the characters consist of printable ascii characters.

Example 1:

Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]

Example 2:

Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

해결방법

1번 방법은 투 포인터를 이용한 방식으로 두 개의 포인터의 위치를 옮겨가면서 위치만 옮겨주는 방식이다.

2번 방법은 그냥 리스트의 reverse() 함수를 통해 뒤집은 방법이다.

class Solution:
    def reverseString(self, s: List[str]) -> None:
        left = 0
        right = len(s) - 1
        while left < right:
            s[left], s[right] = s[right], s[left]
            left += 1
            right -= 1
        return s  # 테스트 코드를 위해 return을 넣었음

    def reverseString2(self, s: List[str]) -> None:
        s.reverse()
        return s  # 테스트 코드를 위해 return을 넣었음

Github