본문 바로가기
Python/파이썬을 알고리즘 인터뷰

[ 6. 문자열 조작 ] - 문자열 뒤집기(Reverse String)

by YWTechIT 2021. 4. 2.
728x90

📍 문자열 뒤집기(reverse string)

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


⚡️ 나의 풀이

문자열을 뒤집는 함수는 대표적으로 reverse()함수가 있는데, 책에서는 투 포인터(two_pointer)를 이용한 스왑방식과 파이썬 다운 방식인 reverse함수를 이용했다.

 

투 포인터 알고리즘은 LeftRight인덱스를 선언하여 범위를 조정해서 풀이하는 방식인데, 나는 평소에 잘 사용하지 않았던 방식이다. 전통적인 방식이니까 어떻게 사용하는지 알고있자.

728x90

그리고 LeftRight0len(s)-1로 선언한 이유는 index가 0부터 세기때문에 0으로 주었고 또, len값에서 -1해준 값이 제일 마지막 index 값이된다.

 

두번째 코드를 리트코드에서 풀게되면 오류가 발생하는데, 공간 복잡도를 O(1)로 제한하다 보니 변수 할당을 처리하는 데 다소 제약이 있다. 이때 다음과 같은 트릭을 사용하면 잘 동작한다.

# 투 포인터 코드
def solution(s):
    left, right = 0, len(s)-1
    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1

# reverse 코드
def solution(s):
    s.reverse()

# 트릭을 사용한 코드
def solution(s):
    s[:] = s[::-1]
반응형

댓글