657. Judge Route Circle【easy】
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
解法一:
1 class Solution { 2 public: 3 bool judgeCircle(string moves) { 4 int h = 0; 5 int w = 0; 6 7 for (int i = 0; i < moves.length(); ++i) { 8 if (moves[i] == ‘U‘) { 9 h++; 10 } else if (moves[i] == ‘D‘) { 11 h--; 12 } else if (moves[i] == ‘R‘) { 13 w++; 14 } else if (moves[i] == ‘L‘) { 15 w--; 16 } 17 } 18 19 return (h == 0 && w == 0); 20 } 21 };
解法二:
1 class Solution { 2 public: 3 bool judgeCircle(string moves) { 4 unordered_map<char, int> c; 5 for ( char m : moves ) 6 ++c[m]; 7 return c[‘L‘] == c[‘R‘] && c[‘U‘] == c[‘D‘]; 8 } 9 };
参考@zqfan 的代码。
时间: 2024-09-30 11:53:17