C++ 实现数字魔法变换:避开边界陷阱求最少能量消耗
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string a, b; long long k; cin >> a >> b >> k; // 找到最长公共后缀 int i = a.size() - 1; int j = b.size() - 1; while (i >= 0 && j >= 0 && a[i] == b[j]) { i--; j--; } // 剩余需要处理的位数 int operations = i + 1 + j + 1; // 如果可以直接通过删除和添加到达目标,考虑是否中途修改更优 // 实际上,最优策略是:保留最长公共后缀,前面的部分通过删除、添加、修改完成 // 特殊情况:如果a已经等于b,不需要任何操作 if (a == b) { operations = 0; } else { // 否则,最少操作数为无法匹配的前缀部分 // 删除a后面多余的位(i+1次),在末尾添加b剩余的位(j+1次) // 或者中间使用修改操作,但每一步都算一次消耗 // 实际上,每个不匹配的操作都需要一次指令 operations = i + 1 + j + 1; } long long result = operations * k; cout << result << endl; 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 字符串长度变化时未正确处理边界条件,容易导致越界访问。 2. 忽略了输入相等的情况,导致多计算了不必要的操作次数。 3. 整数转字符串时未考虑大数情况,若数字极大应使用字符串直接处理。 ######[AI写代码神器 | 399点数解答 | 2025-11-23 20:50:12]
- 揭秘!任意各位不同三位数经变换最终如何锁定 495 及编程求解变换次数(字节豆包 | 167点数解答 | 2025-04-22 20:47:58)324
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)44
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)51
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)319
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)315
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)291
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)79
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)81
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- DBA必看:MySQL字符转HEX数字的方法与示例(百度文心 | 757点数解答 | 2023-11-09 18:06:01)201
- Excel 日期格式显示####?这些解决办法快收好!( | 327点数解答 | 2023-12-29 09:53:45)281