Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
122420 | 陈道宁 | 字符串的展开 | C++ | 解答错误 | 70 | 0 MS | 292 KB | 744 | 2024-01-22 15:24:23 |
#include<bits/stdc++.h> #include<stdio.h> using namespace std; int p1,p2,p3; string S,Ans; char ToChar(char ch){ if(p1==3){ return '*'; } return p1==1?tolower(ch):toupper(ch); } int main(){ cin>>p1>>p2>>p3>>S; S=' '+S+' '; for(int i=1;i<S.size()-1;i++){ if(S[i]!='-'){ Ans+=S[i]; } else{ char s=S[i-1],t=S[i+1]; if(s<t&&(islower(s)&&islower(t)||isdigit(s)&&isdigit(t))){ if(p3==1){ for(char i=s+1;i<=t-1;i++){ for(int j=0;j<p2;j++){ Ans+=ToChar(i); } } } else{ for(char i=t-1;i>=s+1;i++){ for(int j=0;j<p2;j++){ Ans+=ToChar(i); } } } } else{ Ans+='-'; } } } cout<<Ans<<endl; return 0; }