Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
121363 mairuisheng 字符串的展开 C++ 通过 100 0 MS 288 KB 1125 2024-01-21 17:05:13

Tests(10/10):


#include<bits/stdc++.h> using namespace std; string open(char u,char v,int p1,int p2,int p3) { string res; if(u>=v) { res+='-'; return res; } if(v-u==1) return res; for(char x=u+1;x<v;x++) { char in; if('0'<=x && x<='9') in=x; else { if(p1==1) in=x; if(p1==2) in=x-'a'+'A'; } if(p1==3) in='*'; for(int t=1;t<=p2;t++) res+=in; } if(p3==2) { int l=0,r=res.size()-1; while(l<r) swap(res[l++],res[r--]); } return res; } int main() { int p1,p2,p3; string s; cin>>p1>>p2>>p3; cin>>s; for( int i=0;i<s.size();i++) { if(s[i]=='-') { if(i==0 || i==s.size()-1) continue; if(isdigit(s[i-1]) && isdigit(s[i+1]) || isalpha(s[i-1]) && isalpha(s[i+1])) { string res=open(s[i-1],s[i+1],p1,p2,p3); s=s.substr(0,i)+res+s.substr(i+1,s.size()-(i+1)); i+=res.size(); } } } cout<<s<<endl; }


测评信息: