博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷—— P1098 字符串的展开
阅读量:5247 次
发布时间:2019-06-14

本文共 1910 字,大约阅读时间需要 6 分钟。

题目描述

在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“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”。

输入输出格式

输入格式:

 

输入文件expand.in包括两行:

第1行为用空格隔开的3个正整数,依次表示参数p1,p2,p3。

第2行为一行字符串,仅由数字、小写字母和减号“-”组成。行首和行末均无空格。

 

输出格式:

 

输出文件expand.out只有一行,为展开后的字符串。

 

输入输出样例

输入样例#1:
1 2 1abcs-w1234-9s-4zz
输出样例#1:
abcsttuuvvw1234556677889s-4zz
输入样例#2:
2 3 2a-d-d
输出样例#2:
aCCCBBBd-d

说明

40%的数据满足:字符串长度不超过5

100%的数据满足:1<=p1<=3,1<=p2<=8,1<=p3<=2。字符串长度不超过100

NOIP 2007 提高第二题

 

 

字符串模拟,数组开大、一如既往地不长眼

 

1 #include 
2 #include
3 4 const int N(800010); 5 char s[N],ans[N],tmp[N]; 6 int p[3],cnt; 7 8 int Presist() 9 {10 for(int i=0; i<3; ++i) scanf("%d",p+i);11 scanf("%s",s); int n=strlen(s);12 for(int i=0; i
='a'&&s[i+1]<='z'&&s[i-1]>='a'&&s[i-1]<='z')22 {23 if(p[2]==1)24 {25 if(p[0]==3)26 {27 for(int j=s[i-1]-'a'+1; j
='0'&&s[i+1]<='9'&&s[i-1]>='0'&&s[i-1]<='9')55 {56 if(p[2]==1)57 {58 if(p[0]==3)59 {60 for(int j=s[i-1]-'0'+1; j

 

转载于:https://www.cnblogs.com/Shy-key/p/7688631.html

你可能感兴趣的文章
PHP的配置
查看>>
Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)...
查看>>
(转)JVM内存管理:深入Java内存区域与OOM
查看>>
WinForm自制水晶按钮
查看>>
ADO winform登录
查看>>
rgb565格式 alpha混合算法优化
查看>>
性能测试过程模型
查看>>
解决zabbix“ZBX_NOTSUPPORTED: Timeout while executing a shell script”报错
查看>>
ActionResult 之HttpGet HttpPost
查看>>
一次失败的 经历
查看>>
[转]【全面解禁!真正的Expression Blend实战开发技巧】第八章 FluidMoveBehavior完全解析之一漂浮移动...
查看>>
Oracle logminer 分析redo log(TOAD与PLSQL)
查看>>
Android 解决图片大量下载:软引用必须懂4点
查看>>
Vue——Nuxt 基础知识
查看>>
动态规划初步
查看>>
Codeforces Beta Round #83 DIV2
查看>>
LANDR:在线母带处理
查看>>
简单的聊天脑思路
查看>>
java web项目修改favicon.ico图标的方式
查看>>
【读博笔记】 如何招聘程序员,四步法则助你成功
查看>>