1. 程式人生 > >【Java】【leetcode】【題目657

【Java】【leetcode】【題目657

一、題目描述

  初始位置 (0, 0) 處有一個機器人。給出它的一系列動作,判斷這個機器人的移動路線是否形成一個圓圈,換言之就是判斷它是否會移回到原來的位置。
  移動順序由一個字串表示。每一個動作都是由一個字元來表示的。機器人有效的動作有 R(右),L(左),U(上)和 D(下)。輸出應為 true 或 false,表示機器人移動路線是否成圈。

示例 1:
輸入: “UD”
輸出: true
示例 2:
輸入: “LL”
輸出: false

二、題目分析

  用兩個變數分別記錄橫(x)縱(y)座標,初始值為0。經過上下左右移動增減後判斷兩個變數值是否仍為0即可。

三、Java程式碼

class Solution {
    public boolean judgeCircle(String moves) {
        char move_temp[] = moves.toCharArray();
        int x = 0;
        int y = 0;
        for(int i = 0;i<move_temp.length;i++) {
            if(move_temp[i]=='R')       //向右移動橫座標x加1
                x++;
            else if (move_temp[i]=='L'
) //向左移動橫座標x減1 x--; else if (move_temp[i]=='U') //向上移動縱座標x加1 y++; else if(move_temp[i]=='D') //向下移動縱座標x減1 y--; } return (x==0)&&(y==0); //用&&而不是&來提高效率 } }

四、其他