There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.

The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

Note: The way that the robot is "facing" is irrelevant. "R" will always make the robot move to the right once, "L" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.

Example 1:

Input: "UD"
Output: true
Explanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.

Example 2:

Input: "LL"
Output: false
Explanation: The robot moves left twice. It ends up two "moves" to the left of the origin. We return false because it is not at the origin at the end of its moves.

题目描述:大概意思是求一个点经过若干次移动能否回到原来的位置。

题目分析:我们只需要去判断两个条件:

  • 向左移动的次数和向右移动的次数是否相等
  • 向上移动的次数是否和向下移动的次数相等

于是我们只需要计算出向左、向右、向上、向下分别走了多少步就行了。

python 代码:

class Solution(object):
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
moves_length = len(moves)
L_count = 0
R_count = 0
U_count = 0
D_count = 0
for i in range(moves_length):
if moves[i] == 'L':
L_count = L_count + 1
elif moves[i] == 'R':
R_count = R_count + 1
elif moves[i] == 'U':
U_count = U_count + 1
elif moves[i] == 'D':
D_count = D_count + 1 if L_count == R_count and U_count == D_count:
return True
else:
return False

C++ 代码:

class Solution {
public:
bool judgeCircle(string moves) {
int moves_length = moves.length();
int L_count = 0;
int R_count = 0;
int U_count = 0;
int D_count = 0;
for(int i = 0; i < moves_length; i++){
if(moves[i] == 'L'){
L_count++;
}
else if(moves[i] == 'R'){
R_count++;
}
else if(moves[i] == 'U'){
U_count++;
}
else if(moves[i] == 'D'){
D_count++;
}
}
if(L_count == R_count && U_count == D_count){
return true;
}
return false;
}
};

最新文章

  1. 在同步中调用异步方法[.net 4.5]
  2. 你真的有必要退出吗——再说Android程序的退出功能
  3. mongoDB之用户及权限设置
  4. Agg vs. Cairo 二维绘图引擎之比较和选择 .
  5. JAVAWEB项目如何实现验证码 (转)
  6. web 开发中的路由是什么意思
  7. python-三级菜单-67
  8. Spring Cloud 微服务
  9. 目标检测之选择性搜索-Selective Search
  10. shell 递归枚举文件并操作
  11. 面试题--Java
  12. 数据机构-折半查找法(二分查找法)-Python实现
  13. Unexpected error from external database driver (1)
  14. Kafka Java API获取非compacted topic总消息数
  15. [js] - js中类(伪)数组装正规数组
  16. matlab中循环的使用
  17. AutoCompleteTextView搭配Poi搜索实现多项选择
  18. spring cloud连载第三篇之Spring Cloud Netflix
  19. 8086汇编之 CALL 和 RET指令
  20. C语言 &#183; Sine之舞

热门文章

  1. 【软件需求工程与建模 - 小组项目】第6周 - 成果展示3 - 软件设计规格说明书V4.1
  2. myBase7.0破解
  3. Python PEP-8编码风格指南中文版
  4. 5. svg学习笔记-坐标系变换
  5. python——函数之生成器
  6. Markdown语法大全
  7. 力扣算法题—052N皇后问题2
  8. 编译&amp;链接笔记
  9. 【Teradata SQL】使用SQL将多个逗号分隔改为一个逗号分隔
  10. 给 datepicker 设定日期格式