当前位置: 面试刷题>> 机器人能否返回原点 (经典算法题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
```
**码小课**网站中有更多关于算法和数据结构的内容分享给大家学习,可以帮助你更好地理解并掌握各种编程问题。