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,0)出发,上下坐下四个方向,给定一个移动序列后,判断是否回到了原点。
思路:这个比较简单,就是看每个给定序列中U数目是否等于D,L是否等于R即可。写出代码如下:
class Solution {
public:
bool judgeCircle(string moves) {
int array[4]={0}; //初始化都得设为0,会出错
int length = moves.size();
for(int i=0;i<length;i++){ //i<length
switch(moves[i]){
case 'L':
array[0]++;
break;
case 'R':
array[1]++;
break;
case 'U':
array[2]++;
break;
case 'D':
array[3]++;
break;
}
}
return array[0]==array[1]&&array[2]==array[3];
}
};
AC,beats 97%