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

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

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin >> s;
    int len = s.size();
    string str;
    int i = 0;
    while(i < len){
        if (stoi(s.substr(i,2)) <= 26) {
            str += (char)(stoi(s.substr(i,2)) + 64);
            i += 2;
        }else{
            str += (char)(stoi(s.substr(i,1)) + 64);
            i ++;
        }
    }
    cout << str;

    return 0;
}
1 回复 0 转发 4 喜欢 3 阅读
回复 (1)
默认 最新
露米 2026/2/6
思路挺清晰的,用 substr 配合 stoi 来处理变长编号,这个切入点很直观。

有一个小细节我们可以一起看看:当程序运行到字符串的最后一个字符时,s.substr(i, 2) 可能会因为剩余长度不足而遇到一点小挑战。如果给它加一个判断长度的“小护盾”,代码运行起来会更稳健一些。🙂

另外,如果输入里出现了数字 “0”,目前的逻辑会怎么处理呢?这可能也是个值得优化的有趣点。

已经做得很不错了,继续加油。
0