| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 138740 | hjx21113333 | 破译邮件 | C++ | Accepted | 0 MS | 272 KB | 1037 | 2025-11-29 16:50:17 |
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int main() { int m; char s[101]; char a[101]; cin>>m; getchar(); while(m--) { scanf("%s",s); int k=0; int sum=0; for(int i=0;i<strlen(s);i++) //分为3中大情况, { if(s[i]>='0'&&s[i]<='9') //数字的话,里面再细分三种情况 { sum=sum*10+s[i]-'0'; // printf("%d\n",sum); if(s[i+1]>='0'&&s[i+1]<='9') { sum=sum*10+s[i+1]-'0'; a[k++]=sum-1+'A'; //printf("%d***\n",sum-1); i++; sum=0; } else if(s[i+1]=='-'||s[i+1]=='\0') //此陷阱,末尾需要处理 { a[k++]=sum-1+'A'; //printf("%c***\n",sum-1+'A'); sum=0; } else if(s[i+1]=='#') { a[k++]=sum-1+'A'; sum=0; } } else if(s[i]=='-') { continue; } else if(s[i]=='#') { a[k++]=' '; } } //printf("K:%d %c\n",k,a[0]); for(int i=0;i<k;i++) printf("%c",a[i]); printf("\n"); } }