728x90
반응형
문자열을 뒤집는 함수를 작성하라.
입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라.
예제1
# 입력
["h", "e", "l", "l", "o"]
# 출력
["o", "l", "l", "e", "h"]
예제2
# 입력
["H", "a", "n", "n", "a", "h"]
# 출력
["h", "a", "n", "n", "a", "H"]
개인 풀이
# 개인 풀이
# 1. reversed
text.reverse()
print(text)
text.reverse()
# 2. slice
print(text[::-1])
print(text[slice(None, None, -1)])
# 3. 단순 for문
textLen = len(text)
textList = list()
for i in range(0, textLen):
textList.append(text[-i-1])
print(textList)
풀이1. 투 포인터를 이용한 스왑
- 속도: 216밀리초
def reverseString(s: str):
left, right = 0, len(s) - 1
while left < right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
reverseString(text)
풀이2. 파이썬다운 방식
- 속도: 208밀리초
text = text[::-1]
# 리트코드에서는 오류 발생
# 원래는 정상적으로 처리되어야 하지만, 이 문제는 공간 복잡도를 O(1)로
# 제한하다 보니 변수 할당을 처리하는데 다소 제약이 있다.
# 이럴 때 아래와 같은 트릭을 사용할 수 있다.
text[:] = text[::-1]
print(text)
def reverseString(s: str):
s.reverse()
print(s)
reverseString(text)
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[6.문자열조작]로그파일 재정렬 (0) | 2022.05.17 |
---|---|
[6.문자열조작]유효한 팰린드롬 (0) | 2022.05.16 |