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
#include <iostream>
#include <string>
#include <vector>
#include<unordered_set>
using namespace std;
bool judgeCircle(char *moves)
{
int x = 0, y = 0;
for (;;)
{
switch (*moves++)
{
case '\0':return x == 0 && y == 0;
case 'L':--x; break;
case 'R':++x; break;
case 'U':++y; break;
case 'D':--y; break;
}
}
}
void main()
{
while (1)
{
char * command = new char;
cin >> command;
bool b = judgeCircle(command);
b == true ? cout << "true" << endl : cout << "false" << endl;
}
system("pause");
}