https://leetcode.com/problems/reverse-string/description/
Reverse String - LeetCode
Can you solve this real interview question? Reverse String - Write a function that reverses a string. The input string is given as an array of characters s. You must do this by modifying the input array in-place [https://en.wikipedia.org/wiki/In-place_algo
leetcode.com
요약 : 리턴 없이, 리스트에 있는 문자열을 뒤집어라
기본 로직은 다음과 같다.
- 리스트를 앞에서 절반까지 돈다
- 해당 인덱스의 값과 반대편 값을 swap(교환)한다
js라면 구조분해할당으로 swap이 가능하다
[arr[0], arr[1]] = [arr[1], arr[0]]
파이썬은 대놓고(?) swap을 할 수 있다.
arr[0], arr[1] = arr[1], arr[0]
따라서 아래와 같은 코드로 문제를 풀 수 있다.
def reverseString(s) -> None:
"""
Do not return anything, modify s in-place instead.
"""
for i in range(len(s) // 2):
s[i], s[-(i + 1)] = s[-(i + 1)], s[i]
reverseString(["h", "e", "l", "l", "o"])
# ["o","l","l","e","h"]
보완한다면…
- 투 포인터 방식으로 풀 수 도 있을 것이다…
- 리스트의 reverse 메서드를 쓰면 원본이 바뀌기 때문에 한 줄로 끝낼 수 있다
s.reverse()
'알고리즘' 카테고리의 다른 글
[python/leetcode] 819번 most common word 문제 풀이 (0) | 2023.03.03 |
---|---|
[python/leetcode] 937번 reorder log files 문제 풀이 (0) | 2023.03.03 |
[python/leetcode] 125번 valid-palindrome 문제 풀이 (0) | 2023.03.02 |
[JS] 삽입 정렬 구현 (1) | 2023.02.25 |
[JS] 선택정렬 구현 / 시간 복잡도 (0) | 2023.02.24 |