洛谷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 ...
最新文章
- circle函数用法 turtle_Turtle库与Time库基础知识分享(详细)
- 删除远程桌面登陆痕迹
- 微软开源基于云的生理学研究工具
- electron-vue解决打包错误、无法调用出开发者工具(亲测有效)
- 90-40-009-源码-CUBE-引擎为Spark写入Hbase本
- java 爬虫 html页面 parse,Java 爬虫 爬取html网页解析
- 中国省市SQL表---市级行政单位表
- 目标检测模型组件构成
- MySQL不小心按到ctrl_凌晨两点,不小心按下了Ctrl键,结果这样了……
- L - Lifeguards 思维
- 计算机技术变化太快,这世界变化太快!Ps修图进入“智能时代”!
- 8种在JavaScript数组中查找指定元素的方法(用于开发中数据的处理)
- POJ 1265 Area(Pick定理)
- C++:实现量化Libor市场模型流程测试实例
- 计算机是怎样跑起来的笔记摘要
- android 内部 存储空间不足,安卓手机内存空间不足的解决方法
- hdu 1493 qq宠物
- 刨根问底:对象也可以当方法用?
- Android_使用Android killer破解apk
- 基于原生PHP完成小程序支付对接踩坑(V2版本)
热门文章
- 搭建wiki oracle,Wiki系统搭建 JspWiki
- css 解决投影仪投影不清晰,投影仪不清晰要如何解决?
- 虚拟机文件格式详解 .VMX .VMSD .VMDK .NVRAM .VMX.LCK
- 宋有陈抟擅矩文, 内方外圆有如神。 逐浪字库技更精, 数字出版工匠魂
- 使用Kinesis Data Analytics进行实时数据处理
- 【Uniapp 原生插件】科大讯飞语音播报插件
- javaee和mysql在国内外技术_JavaEE的13种核心技术
- 超微服务器系统重装,超微 bios设置,详细教您超微主板bios怎么设置U盘启动
- oracle 12.1.0.2.0 通过 DBBP 升级到 12.1.0.2.190416
- 强化学习: Policy Gradient