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