LeetCode 657. Judge Route Circle(C++版)

来源:互联网 发布:诺基亚塞班软件下载 编辑:程序博客网 时间:2024/06/09 15:42

题目:

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


思路分析:

如果机器人走回最初位置,那么机器人向上移动的步数应该等于向下移动的步数并且向左移动的步数应该等于向右移动的步数。


代码:

class Solution {public:    bool judgeCircle(string moves) {                if(moves.length() == 0) return true;        if(moves.length() %2 != 0) return false;                int up_or_down = 0; //向上加1,向下减1        int left_or_right = 0;        for(int i = 0; i < moves.length(); i ++) {            if(moves[i] == 'U') up_or_down ++;            else if(moves[i] == 'D') up_or_down --;            else if(moves[i] == 'L') left_or_right ++;            else if(moves[i] == 'R') left_or_right --;        }                if(up_or_down == 0 && left_or_right == 0)            return true;        return false;    }};








原创粉丝点击