酷代码 AI
菜单
服务商

移动复位 内存限制: 256 Mb时间限制: 1000 ms 题目描述 二维平面上有一个点。该点最初所在的位置称之为起点。接下来,该点接受了一串命令,每个命令可以用一个大写字母表示: R 表示该点沿 X 轴坐标正方向移动了一个单位; L 表示该点沿 X 轴坐标负方向移动了一个单位; U 表示该点沿 Y 轴坐标正方向移动了一个单位; D 表示该点沿 Y 轴坐标负方向移动了一个单位。 执行完这些指令后,该点不一定回到起点。请计算至少需要增加多少条指令,才能让这个点回到起点?如果该点已经到达起点,则输出 0 0。 输入格式 单个字符串:表示给定的指令序列 输出格式 单个整数:表示最少还需添加最少指令才能回到起点。 数据范围 字符数量不超过 100000 100000 样例数据 输入: LRUD 输出: 0 输入: LLUU 输出: 4 C++写,简单一点,超级简单!!!!!!!!!!!!!!!

```cpp #include <iostream> #include <string> using namespace std; int main() { // 定义字符串变量来存储输入的指令序列 string commands; // 读取输入的指令序列 cin >> commands; // 分别记录在X轴和Y轴上的偏移量 int xOffset = 0; int yOffset = 0; // 遍历指令序列中的每个字符 for (char c : commands) { if (c == 'R') { // 若指令为R,X轴坐标正方向移动一个单位 xOffset++; } else if (c == 'L') { // 若指令为L,X轴坐标负方向移动一个单位 xOffset--; } else if (c == 'U') { // 若指令为U,Y轴坐标正方向移动一个单位 yOffset++; } else if (c == 'D') { // 若指令为D,Y轴坐标负方向移动一个单位 yOffset--; } } // 计算最少需要添加的指令数 int result = abs(xOffset) + abs(yOffset); // 输出结果 cout << result << endl; return 0; } ``` 额外注意的逻辑点 1. 指令字符的大小写问题,代码中默认输入的指令是大写字母,若输入小写字母需要添加转换逻辑。 2. 对于输入的字符串长度,虽然题目规定不超过100000,但如果后续需求变更,要考虑更大长度的情况。 3. 代码中没有对输入进行有效性检查,若输入包含除'R'、'L'、'U'、'D'以外的字符,可能会导致结果不符合预期。 [2025-08-03 15:37:25 | AI写代码神器 | 415点数解答]

相关提问
请收藏新域名:pdcd.cn
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]