力扣 算法题 机器人能否返回原点
题目描述:
在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。
移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。
例题描述:
题目分析:
这道题就是机器人会向上,向左,向右,向下走,最后如果回到了原点,那么就返回true,否则返回false
解题思路:
首先,如果说走的步数是奇数的话,那么他一定是false;如果是偶数则需要判断,上下走的数应该相等,左右走的数也相等,那么就回到了原地
代码如下:
var judgeCircle = function(moves) { var a=0;var b=0 if(moves.length%2!=0){ return false }else{ var num =moves.split() for(var i=0;i<num.length;i++){ if(num[i] =="U"){a++ } if(num[i] =="D") a-- if(num[i] =="L") b++ if(num[i] =="R") b-- } if(a==0 && b==0) return true else return false } };
但是仔细看这个代码发现一个问题,就是没有必要再去判断moves字符串是否是偶数,直接使用下面的代码即可:
var judgeCircle = function(moves) { var a=0;var b=0 var num =moves.split() for(var i=0;i<num.length;i++){ if(num[i] =="U"){a++ } if(num[i] =="D") a-- if(num[i] =="L") b++ if(num[i] =="R") b-- } if(a==0 && b==0) return true else return false };
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~