10月20日 字符串展开

题目

分析

枚举‘-’号位置就好了

代码

 1 #include<iostream>
 2 using namespace std;
 3 int main ()
 4 {
 5     int p1,p2,p3;
 6     cin>>p1>>p2>>p3;
 7     string s,c;
 8     cin>>s;
 9     int kk=0;
10     for (int i=0;i<s.size();i++)
11       if (s[i]==‘-‘)
12       {
13           c+=s[i];
14           kk=i+1;
15       }
16       else break;
17     for (int i=kk;i<s.size();i++)
18     {
19         if (s[i]!=‘-‘)
20           c+=s[i];
21         else
22         {
23             if (s[i+1]==‘-‘)
24             {
25                 c+="--";
26                 i++;
27                 continue;
28             }
29             if (s[i+1]<=s[i-1]||(s[i-1]>=‘0‘&&s[i-1]<=‘9‘&&s[i+1]>‘9‘))
30             {
31                 c+=‘-‘;
32                 continue;
33             }
34             if (s[i-1]+1==s[i+1])
35                continue;
36             int a=s[i-1],b=s[i+1];
37             string t;
38             if (p1==1)
39             {
40                 if (a>=‘A‘&&a<=‘Z‘)
41                    a=a-‘A‘+‘a‘;
42                 if (b>=‘A‘&&b<=‘Z‘)
43                    b=b-‘A‘+‘a‘;
44                 for(int i=a+1;i<b;i++)
45                   for (int j=1;j<=p2;j++)
46                     t+=i;
47             }
48             if (p1==2)
49             {
50                 if (a>=‘a‘&&a<=‘z‘)
51                   a=a-‘a‘+‘A‘;
52                 if (b>=‘a‘&&b<=‘z‘)
53                   b=b-‘a‘+‘A‘;
54                 for(int i=a+1;i<b;i++)
55                   for (int j=1;j<=p2;j++)
56                     t+=i;
57
58             }
59             if (p3==2)
60             {
61                 string tt;
62                 for (int i=t.size()-1;i>=0;i--)
63                    tt+=t[i];
64                 t=tt;
65             }
66             if (p1==3)
67             {
68                 if (a>=‘a‘&&a<=‘z‘)
69                   a=a-‘a‘+‘A‘;
70                 if (b>=‘a‘&&b<=‘z‘)
71                   b=b-‘a‘+‘A‘;
72                 for(int i=a+1;i<b;i++)
73                   for (int j=1;j<=p2;j++)
74                     t+=‘*‘;
75             }
76             c+=t;
77         }
78     }
79     cout<<c;
80 }

原文地址:https://www.cnblogs.com/zjzjzj/p/9860792.html

时间: 2024-10-07 06:09:55

10月20日 字符串展开的相关文章

中级学员:2015年10月20日作业

中级学员:2015年10月20日作业一.项目沟通管理:1.项目沟通管理包括哪些过程:2.沟通管理计划的主要内容:3.项目干系人管理的方法(12.6.2)二.项目合同管理:4.无效合同的五条:5.总价合同的特征,及签订前提条件:6.合同质量.履行地点.履行期限.履行费用不明确的,分别如何处理:7.合同管理的主要内容包括哪四条:8."公平合理"是合同变更的处理原则,变更合同价款按哪些方法进行:9.项目索培的程序,包括哪六步. 最晚提交时间:下次上课前. 提交方法:同学们按照要求完成作业,并

10月20日全球域名商解析新增量TOP15:万网第三

IDC评述网(idcps.com)10月23日报道:根据DailyChanges公布的最新数据显示,在2015年10月20日,全球域名解析新增量十五强大战中,DOMAINCONTROL.COM凭借29,619个新增量拔得头筹,遥遥领先众多域名商.易名中国.中国万网分列2.3名,相比上期,排名两两互换,新增量依次为11,736个.10,993个.接下来,请看IDC评述网对相关数据进行整理与分析. (图1)全球域名解析商(国际域名)解析新增量Top15分布图 从图1中可了解到,在10月20日,全球域

10月20日中国域名商解析量十四强:易名中国季军

IDC评述网(idcps.com)10月22日报道:根据DailyChanges公布的实时数据显示,截止至2015年10月20日,国内域名解析量前三名是中国万网.DNSPod.易名中国,域名解析量分别达到3,462,650个.1,942,018个.1,112,805个.其中,易名中国排名环比上期10月13日上升1位.下面,请与IDC评述网一起关注10月20日中国域名商解析量十四强排行榜. (图1)中国域名解析商(国际域名)解析量排行榜TOP14分布图 由图1可知,在2015年10月20日国内域名

10月20日上午SQl数据库作业解析

设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用SQL语句创建四个表并完成相关题目.                  表1-1数据库的表结构 表(一)Student (学生表)                         字段名 数据类型 可否为空 含 义 Sno varchar(20) 否 学号(主键) Sname

10月20日 迷之阶梯

题目 分析 Dp 代码 1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 int h[201]; 5 int f[201]; 6 int main () 7 { 8 memset(f,0x7f,sizeof(f)); 9 int n; 10 cin>>n; 11 for (int i=1;i<=n;i++) 12 cin>>h[i]; 13 f[0]=f[1]

java的动手动脑10月20日

(1)动手动脑 该函数没有赋初值再就是如果类提供一个自定义的构造方法,将导致系统不在提供默认的构造方法. (2) public class test { /*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubInitializeBlockClass obj=new InitializeBlockClass();System.out.println(obj.field)

【HTML属性】2015年10月20日学习HTML笔记

1.HTML的属性总是在开始标签中规定 例如:HTML链接由<a>标签定义:链接的地址在href属性中指定: <a href="http://www.baidu.com">进入百度</a> 2.更多HTML属性的例子: *<h1>定义标题的开始:<h1 align="center">关于对齐方式的附加信息 *<body>定义文档的主题:<body bgcolor=“yellow”>关

关于10月20日#8的六道题的心得与感悟

二十号了,复赛在即,还望努力. 第一题:脑筋急转弯一样的神奇水题.有一个a×b的矩形桌子,和若干个半径为r的圆盘,两人轮流把圆盘放到桌子上,不能有重叠的部分.最后无法放圆盘的人就是输家.最后输出赢家. 一开始思来想去,完全没有思路.最后看题解才发现是一道大水题.放盘子的时候,只有两种情况. 1.盘子可以放下,那么只要第一个人放在了矩形正中央,接下来,不管第二个人放在哪,总能找到一个与之对称的位置来放置圆盘.2.盘子不能放下,当前的第一个人也就输了. 所以只需要判断第一个盘子能否放下即可得到答案.

2015年10月20日整理知识

类目中的方法优先级高 UserDefault的使用: NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; if (!userDef) { [userDef setObject:result forKey:@"user"]; [userDef synchronize]; } 取值: NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];