PAT 乙级 1078. 字符串压缩与解压 (20)
来源:互联网 发布:airdroid知乎 编辑:程序博客网 时间:2024/06/06 15:41
1078. 字符串压缩与解压 (20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复,就原样输出。例如 aba 压缩后仍然是 aba。
解压方法就是反过来,把形如 5c 这样的表示恢复为 ccccc。
本题需要你根据压缩或解压的要求,对给定字符串进行处理。这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串。
输入格式:
输入第一行给出一个字符,如果是 C 就表示下面的字符串需要被压缩;如果是 D 就表示下面的字符串需要被解压。第二行给出需要被压缩或解压的不超过1000个字符的字符串,以回车结尾。题目保证字符重复个数在整型范围内,且输出文件不超过1MB。
输出格式:
根据要求压缩或解压字符串,并在一行中输出结果。
输入样例 1:CTTTTThhiiiis isssss a tesssst CAaaa as输出样例 1:
5T2h4is i5s a3 te4st CA3a as输入样例 2:
D5T2h4is i5s a3 te4st CA3a as10Z输出样例 2:
TTTTThhiiiis isssss a tesssst CAaaa asZZZZZZZZZZ
提交代码
/*先确定是压缩还是解压压缩统计该字符串的个数,1直接输出该字符串,大于1先输出数量再输出该字符串,字符串最后以'/0'结尾直接判断str[i]和str[i+1]就可以了解压先把前面的数量计算出来,没有就是1 */ #include<iostream>#include<string>using namespace std;int main(){char type;string str;//freopen("input.txt","r",stdin);scanf("%c",&type);getchar();getline(cin,str);if(type == 'C'){int len = str.size();int cnt = 1;for(int i = 0;i < len;i++){if(str[i] == str[i+1]){cnt++;}else{if(cnt>1){printf("%d",cnt);}printf("%c",str[i]);cnt = 1;}}}else{int len = str.size();int cnt = 0;for(int i = 0;i < len;i++){if(str[i]<='9'&&str[i]>='0'){cnt*=10;cnt+=str[i]-'0';}else{if(cnt == 0){printf("%c",str[i]);}elsefor(int j = 0;j < cnt;j++){printf("%c",str[i]);}cnt = 0;}}}return 0;}
阅读全文
0 0
- 1078. 字符串压缩与解压 (20) PAT乙级真题
- PAT 乙级 1078. 字符串压缩与解压 (20)
- PAT (Basic Level) Practise (中文) 1078. 字符串压缩与解压 (20)
- 1078. 字符串压缩与解压 (20)
- 1078. 字符串压缩与解压 (20)
- 1078. 字符串压缩与解压 (20)
- 字符串的压缩与解压
- 压缩与解压1---字符串的压缩与解压
- 1078. 字符串压缩与解压(未拿满分)
- (python3)1078. 字符串压缩与解压 (20分)——2017-12考题
- Java对字符串的压缩与解压
- IOS 压缩与解压字符串(文件) 操作
- 字符串压缩和解压
- GZipStream压缩解压字符串
- C#字符串压缩&解压
- PAT乙级 人口普查(20)
- C# 压缩与解压字符串(面试题)
- JAVA 实现文件(字符串)压缩与解压
- 决斗场
- Redis集群搭建
- 如何调用控制器的方法
- 字符串- 题意理解与转换
- redis实现session共享
- PAT 乙级 1078. 字符串压缩与解压 (20)
- MATLAB利用communication toolbox实现AGWN信道不同编码译码误码率分析
- U3D资料外链
- mysql5.7 阿里云安装部署
- Android中java和smali转化一键化操作工具java2smali原理分析
- 关于最近一篇 "别再盯着我们看了" 92年女生致周鸿祎公开信事件,我想说点什么!
- Android深入四大组件(七)Android8.0 根Activity启动过程(后篇)
- java图形登录界面验证码的实现
- [Unity3d]如何制作unity能使用的RGBA材质贴图