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)的位置,给出他移动的一个序列,判断机器人能否回到起始的地方。移动的序列用一个字符串存储,任何一次移动用一个字母表示,有效的移动R(向右),L(向左),U(向上),D(向下)如果机器人的路线为一个圈则返回true否则返回false
解题思路
只需要统计R、L、U、D的个数,满足R的个数等于L的个数,U的个数等于D的个数则true否则false
/* C++ */
class Solution {
public:
bool judgeCircle(string moves) {
int i, k, j, m, n;
i = 0; j = 0; m = 0; n = 0;
bool output;
for (k = 0; k<moves.size(); k++){
if (moves[k] == 'R')
i++;
if (moves[k] == 'L')
j++;
if (moves[k] == 'U')
m++;
if (moves[k] == 'D')
n++;
}
cout << i << j << m << n << endl;
if (i == j && m == n)
return true;
else
return false;
}
};