657. Judge Route Circle

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

UDLR表示机器人的上下左右,判断它能否回到原点

C++(19ms):
 1 class Solution {
 2 public:
 3     bool judgeCircle(string moves) {
 4         int LRnum = 0 ;
 5         int UDnum = 0 ;
 6         for(char c : moves){
 7             if (c == 'U')
 8                 UDnum++ ;
 9             else if(c == 'D')
10                 UDnum--;
11             else if(c == 'L')
12                 LRnum++;
13             else if(c == 'R')
14                 LRnum--;
15         }
16         if(LRnum == 0 && UDnum == 0)
17             return true ;
18         else
19             return false ;
20     }
21 };

 

Java(15ms):

 1 class Solution {
 2     public boolean judgeCircle(String moves) {
 3         int LRnum = 0 ;
 4         int UDnum = 0 ;
 5         for(char c : moves.toCharArray()){
 6             if (c == 'U')
 7                 UDnum++ ;
 8             else if(c == 'D')
 9                 UDnum-- ;
10             else if(c == 'L')
11                 LRnum++ ;
12             else if(c == 'R')
13                 LRnum-- ;
14         }
15         return UDnum == 0 && LRnum == 0 ;
16     }
17 }

 

posted @ 2017-10-13 17:36  __Meng  阅读(149)  评论(0编辑  收藏  举报