728x90
문제 : 문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라.
예제:
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
솔루션:
- 투 포인터를 이용한 스왑
💡 투 포인터? 단어 그대로 2개의 포인터를 이용해 범위를 조정해가며 풀이하는 방식
def reverseString(self, s : List[str]) -> None:
left, right = 0 , len(s) - 1
while left < right:
s[left], s[right] = s[right], s[left] # 리턴 없이 내부 조작이므로 s의 왼쪽 오른쪽 스왑
left += 1
right -= 1
- 파이썬을 이용
def reverseString(self, s : List[str]) -> None:
s.reverse() #reverse()를 이용함으로써 리스트를 뒤집는다.
# 혹은 s[:] = s[::-1]을 이용
'알고리즘 공부 > 파이썬 알고리즘 인터뷰' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 자료형 (0) | 2022.01.22 |
---|---|
파이썬 알고리즘 인터뷰를 통한 팁 (0) | 2022.01.20 |
04 가장 흔한 단어(Most common words) (2) | 2022.01.10 |
03 로그 파일 재 정렬(reorder data in log files) (0) | 2022.01.10 |
01 유효한 팰린드롬 (Valid Palindrome) (0) | 2022.01.10 |