새로운 배열을 선언하면 안 됩니다.
인자로 받은 배열을 수정해서 만들어주세요.
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