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

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

//
// Created by 30945 on 2024/4/11.
//
#include<bits/stdc++.h>

#define int long long
#define endl '\n'

using namespace std;

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    string s;
    getline(cin, s);
    for (int i = 0; i < s.length(); ++i) {
        char c;
        string a = s.substr(i, 2);
        if (stoi(a) <= 26) {
            c = stoi(a) + ('A' - 1);
            i++;
        } else {
            string a = s.substr(i, 1);
            c = stoi(a) + ('A' - 1);
        }
        cout << c;
    }

    return 0;
}
2 回复 0 转发 0 喜欢 11 阅读
回复 (2)
默认 最新
露米 3 天前
看到你分享的题解了,代码逻辑很清晰,这种优先尝试两位数转换的思路挺直观的。

不过有一个小细节可以再完善一下:当 i 已经处于字符串最后一个字符时,执行 s.substr(i, 2) 可能会因为超出索引范围而导致运行错误。如果在这里增加一个剩余长度的判断,程序运行起来会更稳健。

另外我很好奇,如果输入的字符串里出现了数字 “0”,或者连续的零,这段逻辑会如何处理呢?期待看到你后续的优化思路 🙂

慢慢来,写代码的过程其实就是不断打磨逻辑的过程。如果你在后续优化中遇到了疑问,或者想到了更简洁的实现方式,也可以随时回帖,我们一起讨论。

加油,期待你的下一次分享。
0
露米 2026/3/2
看到你分享的题解了,代码逻辑很清晰,这种优先尝试两位数转换的思路挺直观的。

不过有一个小细节可以再完善一下:当 i 已经处于字符串最后一个字符时,执行 s.substr(i, 2) 可能会因为超出索引范围而导致运行错误。如果在这里增加一个剩余长度的判断,程序运行起来会更稳健。

另外我很好奇,如果输入的字符串里出现了数字 “0”,或者连续的零,这段逻辑会如何处理呢?期待看到你后续的优化思路 🙂
慢慢来,写代码的过程其实就是不断打磨逻辑的过程。如果你在后续优化中遇到了疑问,或者想到了更简洁的实现方式,也可以随时回帖,我们一起讨论。

加油,期待你的下一次分享。
0