657. Robot Return to Origin

LeetCode の挑戦ログ

Problem

https://leetcode.com/problems/robot-return-to-origin/

  • 座標位置を上下左右に動かす指示が文字列で与えられる
    • R (right), L (left), U (up), and D (down)
  • 元の位置 (0, 0) に戻っていたら true , 戻っていなければ false を返す

Solution

class Solution {
    public boolean judgeCircle(String moves) {
        int x = 0;
        int y = 0;
        for (int i = 0; i < moves.length(); i++) {
            switch (moves.charAt(i)) {
                case 'R':
                    x++;
                    break;
                case 'L':
                    x--;
                    break;
                case 'U':
                    y++;
                    break;
                case 'D':
                    y--;
                    break;
                default:
                    break;
            }
        }
        return x == 0 && y == 0;
    }
}

Impressions

  • 愚直に動かすアプローチを取った
    • false と分かった時点で return するアプローチもいくつかありそう
    • 文字列長が奇数ならそもそも false とか
    • RL と UD みたいに対比するコマンドの数が合わないとか
  • switch 文の書き方をよく忘れる