洛谷P8706 [蓝桥杯 2020 省 AB1] 解码 C语言/C++
[蓝桥杯 2020 省 AB1] 解码
题目描述
小明有一串很长的英文字母,可能包含大写和小写。
在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。 例如,连续的 5 5 5 个 a
,即 aaaaa
,小明可以简写成 a5
(也可能简写成 a4a
、aa3a
等)。
对于这个例子:HHHellllloo
,小明可以简写成 H3el5o2
。为了方便表达,小明不会将连续的超过9个相同的字符写成简写的形式。
现在给出简写后的字符串,请帮助小明还原成原来的串。
输入格式
输入一行包含一个字符串。
输出格式
输出一个字符串,表示还原后的串。
样例 #1
样例输入 #1
H3el5o2
样例输出 #1
HHHellllloo
提示
对于所有评测用例,字符串由大小写英文字母和数字组成,长度不超过 100 100 100。请注意原来的串长度可能超过 100 100 100。
蓝桥杯 2020 第一轮省赛 A 组 F 题(B 组 G 题)。
所需变量
char str[105];//用于存储输入进来的字符串
char sum[1005];//用于存储解码后的数据
char temp;//用于一个字符一个字符接收字符串
int i,j;//循环变量
int control;//用于控制最后主串的长度
int sumi;//用于记录本次字符串的个数
int sump;//代表输入进来字符串的总长度
思路:我们首先将加密后的字符串输入进来,然后逐个判断是否是字母或者是数字,如果是数字就代表它前面的字母出现多少次我们就把他解码,也就是输出多少个这个字母就算完成!
首先我们要将所有的字符都读入进来,代码如下:
while(~scanf("%c",&temp)){if(temp == '\n'){break;}str[sump++] = temp;
}
读入后我们需要判断如果是字母那么我们就将其加入到最后解码总和中去,如果是数字也就代表他前面那个数需要出现该数字次数,我的做法如下:
for(i = 0;i<sump;i++){if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){temp = str[i];sum[control++] = temp;}else{sumi = str[i] - 48;for(j = 1;j<sumi;j++){sum[control++] = temp;}}
}
最后将其输出出来,完整代码如下(编译器是dev,语言是C语言):
#include<iostream>
using namespace std;
#include<string.h>
int main(){char str[105];char sum[1005];char temp;int i = 0,j,control = 0,sumi,sump = 0;while(~scanf("%c",&temp)){if(temp == '\n'){break;}str[sump++] = temp;}for(i = 0;i<sump;i++){if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){temp = str[i];sum[control++] = temp;}else{sumi = str[i] - 48;for(j = 1;j<sumi;j++){sum[control++] = temp;}}}for(i = 0;i<control;i++){cout<<sum[i];}cout<<endl;return 0;
}
洛谷P8706 [蓝桥杯 2020 省 AB1] 解码 C语言/C++相关推荐
- 洛谷P8707 [蓝桥杯 2020 省 AB1] 走方格 C语言/C++
[蓝桥杯 2020 省 AB1] 走方格 题目描述 在平面上有一些二维的点阵. 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 1 1 至第 n n n 行,从左到右依次为第 1 1 1 至 ...
- 【蓝桥杯专题】 贪心(C++ | 洛谷 | acwing | 蓝桥)
菜狗现在才开始备战蓝桥杯QAQ 文章目录 [蓝桥杯专题] (C++ | 洛谷 | acwing | 蓝桥) 1055. 股票买卖 II AcWing 104. 货仓选址 传递糖果 AcWing 112 ...
- 蓝桥杯2020山西省省赛太原理工大获丰收
2020年10月18日,太原理工大学在明向校区软件学院实验室举行了蓝桥杯软件类A组的山西省省赛(分赛场比赛).太原理工学子共获得"C/C++程序设计大学A组"一等奖32枚(一等奖共 ...
- 蓝桥杯2020年第十一届C/C++B组(第二次)省赛习题题解
目录 试题A.门牌制作(拆分数字) 试题 B 既约分数(gcd) 试题C 蛇形填数(数学) 试题D 跑步锻炼(模拟) 试题E 七段码(图论+并查集) 试题F:成绩统计(格式化输出) 试题G:回文日期( ...
- 第十一届蓝桥杯 2020年国赛真题及解析 (Java 大学B组)
第十一届蓝桥杯 2020年国赛真题 Java 大学B组 A 美丽的 2 B 扩散 C 阶乘约数 D 本质上升序列 E 玩具蛇 F 蓝肽子序列 G 皮亚诺曲线距离 H 画廊 I 补给 J 质数行者 所 ...
- 蓝桥杯 基础练习 分解质因数 python语言
蓝桥杯 基础练习 分解质因数 python语言 描述 求出区间[a,b]中所有整数的质因数分解. 输入 输入描述: 输入两个整数a,b. 输入样例: 3 10 输出 输出描述: 每行输出一个数的分解, ...
- 蓝桥杯 基础练习 分解质因数 C语言
蓝桥杯 基础练习 分解质因数 C语言 描述 求出区间[a,b]中所有整数的质因数分解. 输入 输入描述: 输入两个整数a,b. 输入样例: 3 10 输出 输出描述: 每行输出一个数的分解,形如k=a ...
- 【蓝桥杯专题】 DP(C++ | 洛谷 | acwing | 蓝桥)
菜狗现在才开始备战蓝桥杯QAQ 文章目录 编程实现动态规划的状态转移方程时, 务必分清楚阶段. 状态与决策, 三者应该按照由外向内的顺序依次循环!! ----蓝书 背包问题 01背包 AcWing 3 ...
- 蓝桥杯2020国赛太原理工学子成绩大跃进
2020年11月14日,第十一届蓝桥杯全国软件和信息技术专业人才大赛个人赛全国总决赛在全国各地多个分赛场同时举行,太原理工大学参加了了在中北大学分赛场的比赛.本次比赛历时4个小时,吸引了来自全国100 ...
最新文章
- 万字长文爆肝 DNS 协议!
- linux驱动之i2c学习
- 集群调度架构的变革 (二)
- 深信服副总裁张开翼:随需应变的IT新架构
- v-show和v-if的区别
- 产品开发专业认证_食品招生季食品科学与工程专业介绍
- C语言const关键字与指针
- 《Python编程从入门到实践》记录之列表切片
- 诺基亚接连巨亏:死守塞班难学摩托罗拉
- 乐高ev3编程 c语言,乐高ev3编程软件下载-乐高EV3机器人编程软件lego mindstorms ev31.0 官方版 - 极光下载站...
- 浅谈大数据广告下个人隐私保护,开发者视角的广告原理
- WebSocket模拟群聊
- 电脑b站html加速播放,b站视频怎么加速播放-将B站视频调速播放的方法 - 河东软件园...
- 【Unity3D日常开发】灯光系统,太阳光晕效果实现
- 云计算与大数据处理技术_云计算与大数据处理
- gitbook 插件:Emoji 表情
- HBuilder制作英雄皮肤抽奖小游戏
- 申请Let’s Encrypt通配符证书
- Linux 操作系统课程练习题(五)综合练习
- 后知识付费时代,微信私域裂变5大打法