当前位置: 面试刷题>> 机器人能否返回原点 (经典算法题500道)


### 题目描述补充 **题目:机器人能否返回原点** 在一个二维平面上,有一个机器人从原点 `(0, 0)` 出发。该机器人可以执行一系列移动指令,每个指令可能是向左移动一步(`L`),向右移动一步(`R`),向上移动一步(`U`),或向下移动一步(`D`)。请编写一个函数来判断给定的指令序列执行后,机器人是否能返回到原点 `(0, 0)`。 ### 示例 **输入**:`"UDDLRU"` **输出**:`true` **解释**:机器人按 `"UDDLRU"` 顺序移动,依次是向上(`U`)、向下(`D`)、向下(`D`)、向左(`L`)、向右(`R`)、向上(`U`),最终返回原点 `(0, 0)`。 ### PHP 示例代码 ```php function robotReturnsToOrigin($moves) { $x = 0; // 初始位置 x 坐标 $y = 0; // 初始位置 y 坐标 // 遍历指令序列 for ($i = 0; $i < strlen($moves); $i++) { switch ($moves[$i]) { case 'U': $y++; // 向上移动,y 坐标增加 break; case 'D': $y--; // 向下移动,y 坐标减少 break; case 'L': $x--; // 向左移动,x 坐标减少 break; case 'R': $x++; // 向右移动,x 坐标增加 break; } } // 如果最终 x 和 y 坐标都为 0,则返回原点 return $x === 0 && $y === 0; } // 测试示例 echo robotReturnsToOrigin("UDDLRU") ? "true" : "false"; // 输出 true ``` ### Python 示例代码 ```python def robot_returns_to_origin(moves): x, y = 0, 0 # 初始位置 (0, 0) # 遍历指令序列 for move in moves: if move == 'U': y += 1 # 向上移动 elif move == 'D': y -= 1 # 向下移动 elif move == 'L': x -= 1 # 向左移动 elif move == 'R': x += 1 # 向右移动 # 检查是否返回原点 return x == 0 and y == 0 # 测试示例 print(robot_returns_to_origin("UDDLRU")) # 输出 True ``` ### JavaScript 示例代码 ```javascript function robotReturnsToOrigin(moves) { let x = 0; // 初始位置 x 坐标 let y = 0; // 初始位置 y 坐标 // 遍历指令序列 for (let i = 0; i < moves.length; i++) { if (moves[i] === 'U') { y++; // 向上移动 } else if (moves[i] === 'D') { y--; // 向下移动 } else if (moves[i] === 'L') { x--; // 向左移动 } else if (moves[i] === 'R') { x++; // 向右移动 } } // 检查是否返回原点 return x === 0 && y === 0; } // 测试示例 console.log(robotReturnsToOrigin("UDDLRU")); // 输出 true ``` **码小课**网站中有更多关于算法和数据结构的内容分享给大家学习,可以帮助你更好地理解并掌握各种编程问题。
推荐面试题