Python: Code Taka 3주차 2

4861 단어 CodeTakaCodeTaka

Q. 문제: 문자로 구성된 배열을 input으로 전달하면, 문자를 뒤집어서 return 해주세요.

새로운 배열을 선언하면 안 됩니다.
인자로 받은 배열을 수정해서 만들어주세요.

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"]

나의 답

def reverseString(s):
    return s[::-1]
    
def reverseString(s):
    return s.reverse()

이제는 너무나 쉬운 문자열 뒤집기 문제이다. 첫번 째 코드가 가장 pythonic 한 답이다. 문자열의 순서를 조작하는 것에 있어서 슬라이싱이 가장 빠르다. list.reverse() 를 써도 무방하지만, list.reverse() 는 슬라이싱 보다 속도가 느리다.
새로운 배열을 선언해서는 안되며, 인자로 받은 배열을 수정해야 하기 때문에 뒤집은 값을 바로 리턴하였다.

투포인터를 활용한 방식은 아래와 같다.

def reverseString(s):
    left = 0
    right = len(s) - 1
  
    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1
    
    return s

좋은 웹페이지 즐겨찾기