top1编程
← 返回题目
题解

【基础】破译文件

1 条题解

  • 0
    @ 2026-7-28 23:26:21
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n;
        cin>>n;
        for(int i=0;i<n;i++){
            string s;
            cin>>s;
            int num=0;
            string ans="";
            for(int j=0;j<s.length();j++){
                if(isdigit(s[j])){
                    num=num*10+(s[j]-'0');
                }else if(s[j]=='-'){// 拆分:单独处理'-'
                    if(num > 0){
                        ans+=('A'+num-1);
                        num=0;
                    }
                }else if(s[j]=='#'){// 单独处理'#'
                    if(num > 0){
                        ans+=('A'+num-1);
                        num=0;
                    }
                    ans += ' ';
                }
            }
            if(num>0)ans+=('A'+num-1);
            //删掉末尾多余空格(关键修复)
            while(!ans.empty() && ans.back()==' '){
                ans.pop_back();
            }
    
            cout<<ans<<endl;
        }
        return 0;
    }
    
    • 1