原题链接:蓝桥杯算法训练VIP-字符串的展开
参考代码:
#include<iostream> #include<string> using namespace std; int p1,p2,p3; int flag,ASC; string s; void print(int a){ if(flag==0){ a -= ASC; if(p1!=3) for(int i=0;i<p2;i++) printf("%c",a); else for(int i=0;i<p2;i++) cout << "*"; } else if(p1!=3) for(int i=0;i<p2;i++) printf("%c",a); else for(int i=0;i<p2;i++) cout << "*"; } int main(){ cin>>p1>>p2>>p3; cin>>s; for(int i=0;i<s.length();i++){ flag = 0; if('0'<=s[i]&&s[i]<='9') flag = 1; int k = s[i+2]; cout << s[i]; if(s[i+1]=='-'&&s[i]<s[i+2]) if(s[i+2]-s[i]==1) i++; else if(s[i+2]-s[i]==0) continue; else if('0'<=s[i+2]&&s[i+2]<='9'&&'a'<=s[i]&&s[i]<='z'||'0'<=s[i]&&s[i]<='9'&&'a'<=s[i+2]&&s[i+2]<='z') continue; else if(s[i]=='-'||s[i+2]=='-') continue; else{ if(p1==1) ASC = 0; else if(p1==2) ASC = 'a' - 'A'; if(p3==1){ for(int j=s[i]+1;j<k;j++) print(j); i++; } else{ for(int j=s[i+2]-1;j>s[i];j--) print(j); i++; } } } }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复