【海外エンジニア転職活動】Coding Interview鍛錬: 00.Recursion - Reverse String
問:配列:s を反転させる関数を作成せよ。
- O(1)
- 配列をin-placeで変更すること
例
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
解いてく
ちなみにpythonなら
s.reverse()
でクリアできてしまうが練習のため
とりあえずRecursion(再帰)で攻めていく。
1. 配列の右端:r と左端:l から順番に位置を交換していく。
2. l < r が満たされる限り続ける。
解答
class Solution: def reverseString(self, s: List[str]) -> None: def helper(l, r, ls): if l < r: ls[l], ls[r] = ls[r], ls[l] l+=1 r-=1 helper(l, r, ls) l, r = 0, len(s)-1 helper(l, r, s)
と、こんな感じでコーディング鍛錬始めました!
ご意見、アドバイス等あればよろしくお願いいたします!