Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.
The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R
(Right), L
(Left), U
(Up) and D
(down). The output should be true or false representing whether the robot makes a circle.
Example 1:
Input: "UD" Output: true
Example 2:
Input: "LL" Output: false
给垂直方向和水平方向两个计数器,根据不同的变动进行加减,都为0说明没动。(自己第一时间想到的无脑解)
1 class Solution { 2 public boolean judgeCircle(String moves) { 3 int v=0, h=0; 4 for(int i=0;i<moves.length();i++){ 5 if(moves.charAt(i)=='U'){ 6 v++; 7 } 8 else if(moves.charAt(i)=='D'){ 9 v--; 10 } 11 else if(moves.charAt(i)=='R'){ 12 h++; 13 } 14 else if(moves.charAt(i)=='L'){ 15 h--; 16 } 17 } 18 if(v==0 && h==0){ 19 return true; 20 } 21 else{ 22 return false; 23 } 24 } 25 }