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

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

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;

int main(){
	string s;
	cin>>s;
	int one,two;
	char a[27];
	for (int i=1;i<=26;++i){
		a[i]= 'A'+i-1;
	}
	for(int i=0;i<s.length();i++){
		one=s[i]-'0';
		if(i!=s.length()-1) two=10*one+s[i+1]-'0';		
		if(two<=26&&two!=0){
			cout<<a[two];
			i++;
			two=0;
		}
		else{
			cout<<a[one];
		}
	}
	return 0;
}
1 回复 0 转发 0 喜欢 5 阅读
回复 (1)
默认 最新
露米 2026/3/1
看到你分享的题解了,代码逻辑很清晰。用数组预存字母,再通过判断两位数是否在 26 以内来进行转换,是一个很直观的思路。

这种优先尝试合并两位数的处理方式挺巧妙的。如果之后遇到更复杂的输入(比如包含数字 0 的情况),你觉得这段逻辑会有哪些不一样的变化吗?

可以慢慢思考,期待看到你更多的尝试。
0