在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678”。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:
(1) 遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格大于左边的字符。
(2) 参数p1:展开方式。p1=1时,对于字母子串,填充小写字母;p1=2时,对于字母子串,填充大写字母。这两种情况下数字子串的填充方式相同。p1=3时,不论是字母子串还是数字字串,都用与要填充的字母个数相同的星号“*”来填充。
(3) 参数p2:填充字符的重复个数。p2=k表示同一个字符要连续填充k个。例如,当p2=3时,子串“d-h”应扩展为“deeefffgggh”。减号两边的字符不变。
(4) 参数p3:是否改为逆序:p3=1表示维持原来顺序,p3=2表示采用逆序输出,注意这时候仍然不包括减号两端的字符。例如当p1=1、p2=2、p3=2时,子串“d-h”应扩展为“dggffeeh”。
(5) 如果减号右边的字符恰好是左边字符的后继,只删除中间的减号,例如:“d-e”应输出为“de”,“3-4”应输出为“34”。如果减号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,要保留中间的减号,例如:“d-d”应输出为“d-d”,“3-1”应输出为“3-1”。

输入格式
输入包括两行:
第1行为用空格隔开的3个正整数,一次表示参数p1,p2,p3。
第2行为一行字符串,仅由数字、小写字母和减号“-”组成。行首和行末均无空格。

输出格式
输出只有一行,为展开后的字符串。
输入输出样例1
输入
1 2 1
abcs-w1234-9s-4zz
输出
abcsttuuvvw1234556677889s-4zz

输入输出样例2
输入
2 3 2
a-d-d
输出
aCCCBBBd-d

输入输出样例3
输入
3 4 2
di-jkstra2-6
输出
dijkstra2************6

数据规模和约定
40%的数据满足:字符串长度不超过5
100%的数据满足:1<=p1<=3,1<=p2<=8,1<=p3<=2。字符串长度不超过100

#include <iostream>
#include <algorithm>
#include <string>
#include <cctype>
using namespace std;
int main() {int p1, p2, p3;string s;cin >> p1 >> p2 >> p3 >> s;for (int i = 0; i < s.size(); i++) {cout << s[i];if (i < s.size() - 2 && s[i + 1] == '-' &&(isdigit(s[i]) && isdigit(s[i + 2]) || islower(s[i]) && islower(s[i + 2]))) {char c1 = s[i], c2 = s[i + 2];string ans;if (c1 >= c2) ans = "-";else if (c1 + 1 == c2) ans = "";else {if (p3 == 1) {for (int i = c1 + 1; i < c2; i++) {if (p1 == 1) ans.append(p2, tolower((char) i));if (p1 == 2) ans.append(p2, toupper((char) i));if (p1 == 3) ans.append(p2, '*');}}if (p3 == 2) {for (int i = c2 - 1; i > c1; i--) {if (p1 == 1) ans.append(p2, tolower((char) i));if (p1 == 2) ans.append(p2, toupper((char) i));if (p1 == 3) ans.append(p2, '*');}}}cout << ans;i++;}}return 0;
}

蓝桥杯 ALGO-110 算法训练 字符串的展开相关推荐

  1. 蓝桥杯:试题 算法训练 Remember the A La Mode

    蓝桥杯:试题 算法训练 Remember the A La Mode 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参 ...

  2. 算法训练 字符串的展开

    ** 算法训练 字符串的展开 ** 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有 类似于"d-h"或者& ...

  3. 矩阵乘法 算法训练 试题_蓝桥杯习题集_ 算法训练 矩阵乘法

    原文: 算法训练 矩阵乘法 时间限制:1.0s   内存限制:512.0MB 问题描述 输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s, ...

  4. 算法训练 字符串的展开c语言

    在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有 类似于"d-h"或者"4-8"的字串, ...

  5. 蓝桥杯练习系统算法训练习题加答案java版本

    附上百度文库的链接:http://wenku.baidu.com/view/afb78d36b42acfc789eb172ded630b1c59ee9bf7 转载于:https://www.cnblo ...

  6. java蓝桥杯的题_Java蓝桥杯试题集——算法训练ALGO-116——最大的算式

    题目要求 解题思路 动态规划,今天才弄明白QAQ,借鉴了这位大佬的博客,曹磊的博客 写的很好!但是我觉得我的循环方式更容易理解嘿嘿嘿~ 首先建立如下图的数组,行数代表前几位数,列数代表有几个乘号.将第 ...

  7. 蓝桥杯练习系统—算法训练 s01串

    第一部分:题目 问题描述 s01串初始为"0" 按以下方式变换 0变1,1变01 输入格式 1个整数(0~19) 输出格式 n次变换后s01串 样例输入 3 样例输出 101 数据 ...

  8. 蓝桥杯:试题 算法训练 采油区域 矩阵前缀和+动态规划+分治+枚举

    资源限制 时间限制:2.0s 内存限制:512.0MB 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地为一个矩形区域,被划分为M× ...

  9. 蓝桥杯-黑色星期五(算法训练)

    题目描述: 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是"诸事不宜".请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是1 ...

最新文章

  1. cv2.waitKey(1) == ord('key')的等待键盘用法
  2. android网络通信之SOAP教程实例汇总
  3. android进出动画有白屏,Android启动白屏原因及解决方案
  4. 运行catia_教程 | CATIA宏的录制及应用
  5. 西固哪家计算机学校好,兰州市西固区有什么技术学校和大学
  6. video怎么重新加载 vue_vue 事件中更改video的src成功,视频不加载
  7. UVa 1642 (综合) Magical GCD
  8. spring 数据库 链接db2_实例讲解使用Spring通过JPA连接到Db2
  9. 组态王gprs虚拟服务器,GPRS/CDMA 网络通过组态王软件虚拟串口(IO/设备)实现无线远程...
  10. java实现word,ppt,excel,jpg转pdf
  11. C#路径中使用斜杠/和反斜杠\的区别
  12. html网页漂浮广告原理js,JS实现弹性漂浮效果的广告代码
  13. 欧姆龙sysmac studio 与得克威尔EX-1100(EX-2C0S,EX300S)EtherCat配置与通信
  14. 【Sql】sql server2008附加数据库:错误9003
  15. 效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码 微信小程序开源了
  16. 如何利用MES系统实现防错和预警?(详细整理,值得收藏)
  17. java转换docx为doc文件_java使用poi转换doc/docx为pdf
  18. access中dbs和dbms_DB、DBS、DBMS三者的关系是什么?
  19. 如何查看大型工程源代码(非常不错)
  20. css 友情链接效果,SEO:友情链接是什么?友情链接检查样式方位排版

热门文章

  1. java(19) - 反射机制
  2. JSON --- JAVA 使用方法
  3. 科技圈CEO用微鲸尬明星脸,除了罗永浩还有哪些大牛光荣上榜?
  4. 大数据和人工智能将成消费金融主要驱动力
  5. 搭建高可用的分布式hadoop2.5.2集群  HDFS HA
  6. 系统集成资质培训 - 论文:论项目的人力资源管理
  7. Android 创世纪 第三天
  8. 科学技术是对人类历史发展和现代国家兴亡起决定作用的一种力量
  9. 升级到NVelocity1.1版本
  10. 使用PING判断TCP/IP故障