Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
123291 | 凌愉晴 | 字符串的展开 | C++ | 通过 | 100 | 0 MS | 256 KB | 946 | 2024-01-22 19:45:57 |
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int n,p1,p2,p3; char s[205]; void onechar(int k){ int i; char c=(char)k; if (p1==2 && islower(c)) c-=32; if (p1==3) c='*'; for (i=1;i<=p2;i++) printf("%c",c); } void expand(int b,int e){ int i; if (p3==1) for (i=b+1;i<e;i++) onechar(i); if (p3==2) for (i=e-1;i>b;i--) onechar(i); } int main(){ scanf("%d %d %d\n",&p1,&p2,&p3); gets(s); n=strlen(s); int i,a,b; for (i=0;i<n;i++){ if (s[i]!='-' || i==0 || i==n-1) printf("%c",s[i]); else{ a=s[i-1]; b=s[i+1]; if ((isdigit(a)&&isdigit(b) || islower(a)&&islower(b))&&(b-a>1)) expand(a,b); else if (b-a!=1) printf("%c",s[i]); } } return 0; }