본문 바로가기

DEVELOP/Algorithm

[Python] LeetCode 문제풀이 :: 344. Reverse String

반응형

LeetCode

 

리트코드 344번 문제풀이

 

https://leetcode.com/problems/reverse-string/

 

Reverse String - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

Write a function that reverses a string. The input string is given as an array of characters char[].

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

You may assume all the characters consist of printable ascii characters.

 

Example 1:

    Input: ["h","e","l","l","o"] ]

    Output: ["o","l","l","e","h"]

Example 2:

    Input: ["H","a","n","n","a","h"]

    Output: ["h","a","n","n","a","H"]

문자의 배열이 입력되면 그걸 뒤집은 배열을 출력하는 문제. 단 입력된 배열을 그대로 조작해야 한다.

 

# Solution 1

class Solution:
    def reverseString(self, s):
        s.reverse()

 

사실 이 문제는 솔루션을 안 올리고 했었다. 올리는 이유는 가능한 모든 솔루션에 대한 아카이브를 남겨두고 싶어서는 아니고 회식하고 블로그 포스팅을 못 해서 빨리 하고 자려고. 음 사실 파이썬이 아니었다면 꽤 재밌게 여러 솔루션을 고민해볼 수 있는 문제였다. 다만 파이썬으론 1줄로 실행 시간 99점 메모리 100점이 나오는 문제였다. 다시 한 번 깨닫는 "Life is short, you need python".

 

생각해볼 수 있는 다른 솔루션이라면, start와 end로 포인터를 잡고 start는 올리고 end는 줄여가며 두 개를 스위칭 해가는 것. 속도는 O(n/2)가 아닐까 생각해보는데 정확히는 해봐야 알 것 같다. 여튼 동기가 풀어보라 해서 풀어봤지만 별로 재미는 없었던 문제. 다만 파이썬의 내장 함수들이 실제로 내부에서 어떻게 동작하는지 공부하면 더 좋겠다는 생각을 들게 했다. 좀 더 깊은 공부를 하기 위한 자극이 됐던 문제다.

 

https://github.com/infomuscle/algorithms-leetcode/blob/master/python/344.%20Reverse%20String.py

 

infomuscle/algorithms-leetcode

Solutions for LeetCode Problems. Contribute to infomuscle/algorithms-leetcode development by creating an account on GitHub.

github.com

 

반응형