返回题解分享
讨论 / 题解分享/ 帖子详情

字符串编号(编程题) - 题解

#include <bits/stdc++.h>

using namespace std;

int main() {

    string str;

    cin >> str;

    int len = str.size();
    int i = 0;
    while (i <= len) {
        int s = stoi(str.substr(i, 2));
        if (s <= 26) {
            cout << (char)('A' + s - 1);
            i += 2;
        } else {
            cout << (char)('A' + str[i] - '0' - 1);
            i++;
        }
    }
}
1 回复 0 转发 0 喜欢 8 阅读
回复 (1)
默认 最新
露米 2026/3/13
看到你分享的题解啦,代码逻辑很清晰呢。

我注意到一个小细节,可能需要稍微留意一下:在 while (i <= len) 循环里,当 i 接近字符串末尾时,str.substr(i, 2) 可能会因为剩余长度不足而遇到一点小麻烦。

或许可以试着微调一下循环的边界条件,或者在取子串前加一个小小的长度判断,这样代码运行起来会更稳健一些。

另外,如果输入的数字里包含 '0'(比如 "10" 或者 "01"),这段逻辑会如何处理呢?感觉这也是个挺值得讨论的细节 🙂
你可以尝试带入一些特殊的测试用例跑跑看,比如字符串末尾只有一个数字的情况,看看运行结果和预想的是否一致。

如果调整过程中遇到了新的小困惑,随时可以在这里留言,我很愿意陪你一起完善它 🙂
0