문제

주어진 문자열을 뒤집어라. 리턴 없이 리스트 안에서 변경!

예시

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

풀이

my풀이1(216ms, 18.2mb)

swap 으로 품.

class Solution:
    def reverseString(self, s: List[str]) -> None:
        for i in range(len(s) // 2):
            tmp = s[i]
            s[i] = s[len(s) - (i + 1)]
            s[len(s) - (i + 1)] = tmp

book풀이1(216ms, 18.2mb)

사실상 위 풀이와 같은 성능을 낸다.
저 문법은 파이써닉하게 작성함.

class Solution:
    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

book풀이2(208ms, 18.2mb)

class Solution:
    def reverseString(self, s: List[str]) -> None:
        s.reverse()
  • reverse()는 리스트에서만 사용가능 문자열 내부를 뒤집음
    reversed(리스트)는 새로 할당 된 리스트 리턴
profile
기록과 정리

0개의 댓글