6장_2 문자열 조작(문자열 뒤집기)
문자열을 반대로 하는 함수를 작성합니다. 입력 문자열은 문자 배열로 제공됩니다. 단 리턴없이 리스트 내부를 스스로 조작해야한다.
예 1:
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
예 2:
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
1. 투포인터를 이용한 스왑
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
left, right = 0, len(s) -1
while left < right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
left와 right는 0으로 초기화하고 길이값은 1만큼 빼준것을 초기화한뒤 left는 1씩 증가시키고 반대로 right는 1씩 감소시켜주다가 left가 right보다 커지기 전까지 서로를 교체해준다.
파이썬의 기본 기능을 이용하면 이것보다도 훨신 간단하게 단 한줄로 쉽게 풀이할 수도 있다.
단, reverse()는 리스트에서만 사용할 수 있다.
또 6장 1번에서 배운 것과 같이 리스트로도 표현할 수 있다.
s = s[::-1]는 왜 안되나 생각할 수도 있는데 이 문제는 공간 복잡도를 O(1)로 제한하다 보니 변수 할당을 처리하는데 다소 제약이 있다.
Author And Source
이 문제에 관하여(6장_2 문자열 조작(문자열 뒤집기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dongmin/6장2-문자열-조작문자열-뒤집기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)