JavaScript 的 Leetcode 演算之路(二)

Mike
I am Mike
Published in
4 min readOct 12, 2019

上一章節還沒看過的點這裡,這次一樣來分享一個 Easy 的題目,在日常透過這簡單類型的題目來訓練一下自己的大腦~
這次的題目是這個 657. Robot Return to Origin (Easy)

我們來看一下它的題目敘述

There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.Note: The way that the robot is "facing" is irrelevant. "R" will always make the robot move to the right once, "L" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.
Example 1:
Input: "UD"
Output: true
Example 2:
Input: "LL"
Output: false

題目的意思就是說,有一個機器人會依照你所輸入的指令來進行移動,指令像是這樣

  • R = (right)
  • L = (left)
  • U = (up)
  • D = (down)

輸入一指令就移動一格,例如 RURD好了,移動順序為 右 > 上 > 右 >下,題目是說當整個指令執行完成後,機器人會回到剛開始的起始位置(0, 0),是不是非常簡單~

接下來我們來看一下解題思路

  1. 首先我們會需要兩個變數去記錄目前的 x、y 位置。
  2. 再來針對輸入的指令去對 x、y 做增減,套用我們的座標概念。
  3. 最後如果回到原點我們的 x、y 都會是 0,所以最後我們會需要去判斷 x、y 是不是都是 0。

接下來就看看我的解法

我們可以直接針對String去取出它的 length 還有可以透過 [] 來取得單一字串,就不需要還要 .split('')來轉成Array再來處理,這樣反而多轉一次,至於更好的做法...我目前測試了幾種方式但是都沒有比這個好,所以目前這題應該就到這邊告一段落了~

最後

我有開設一個youtube的頻道,每個月不定時週六或日晚上直播跟技術或是經驗相關的分享,有興趣的朋友歡迎追蹤訂閱+小鈴鐺。

--

--

Mike
I am Mike

如果有一行code無法解決的bug,那就寫兩行!