close

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");
}
 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()