XDOJ 字符串压缩 C
前言
字符串处理需熟练。
下学期开学前的上学期期末复习。
题干
问题描述
有一种简单的字符串压缩算法,对于字符串中连续出现的同一个英文字符,用该字符加上连续出现的次数来表示(连续出现次数小于3时不压缩)。
例如,字符串aaaaabbbabaaaaaaaaaaaaabbbb可压缩为a5b3aba13b4。
请设计一个程序,将采用该压缩方法得到的字符串解压缩,还原出原字符串并输出。
输入说明
输入数据为一个字符串(长度不大于50,只包含字母和数字),表示压缩后的字符串
输出说明
在一行上输出解压缩后的英文字符串(长度不超过100),最后换行。
输入样例
a5b3aba13b4
输出样例
aaaaabbbabaaaaaaaaaaaaabbbb
解析
看似简单,但存在几个思维盲点:
- 数字若为两/三位数的处理(占用两/三个字符)
- 数字是前一个字母的重复次数
- 大小写字母均可,勿被样例迷惑 漏大写字母情况
- 下标在变
- 同个字母重复三次及以上才压缩
解答
#include<stdio.h>
#include<string.h>
int main(){char a[50],c;int len,i,j,num=0;gets(a);len=strlen(a);for(i=0;i<len;i++){if(a[i]>='a' && a[i]<='z' || a[i]>='A' && a[i]<='Z'){for(j=0;j<num-1;j++){printf("%c",c);}num=0;c=a[i];printf("%c",c);}if(a[i]>='0' && a[i]<='9'){num=num*10+a[i]-48;//num是连续出现的次数//若出现次数>=10则要计算次数,char->int,减去'0'的ASCII码值48 }}for(i=0;i<num-1;i++){printf("%c",c);}printf("\n");return 0;
}
拓展
C语言字符串操作总结大全(超详细) - DoubleLi - 博客园 (cnblogs.com)
XDOJ 字符串压缩 C相关推荐
- xdoj试题 字符串压缩
标题 字符串压缩 类别 字符串处理 时间限制 1S 内存限制 1000Kb 问题描述 有一种简单的字符串压缩算法,对于字符串中连续出现的同一个英文字符,用该字 ...
- 字符串压缩(xdoj)
标题 字符串压缩 类别 字符串处理 时间限制 1S 内存限制 1000Kb 问题描述 有一种简单的字符串压缩算法,对于字符串中连续出现的同一个英文字符,用该字 ...
- 字符串压缩-xdoj
标题 字符串压缩 类别 字符串处理 时间限制 1S 内存限制 1000Kb 问题描述 有一种简单的字符串压缩算法,对于字符串中连续出现的同一个英文字符,用该字 ...
- python【蓝桥杯vip练习题库】ADV-301 字符串压缩
试题 算法提高 字符串压缩 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是 ...
- redis源码之字符串压缩
redis关于字符串压缩的几个文件分别是:lzf.h,lzfP.h,lzf_c.c,lzf_d.c,下面看一个测试用例. #include <iostream> #include < ...
- leetcode 解压缩_leetcode之字符串压缩
序 本文主要记录一下leetcode之字符串压缩 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若&quo ...
- C语言字符串压缩显示
昨天参加WPS的笔试时,有一道题是要求写一个函数实现字符串压缩,举个例子: 输入:aaabbccccc 输出:a3b2c5 当时总想着怎么把输入的字符串str改写成输出那压缩形式,如果要修改字符串的话 ...
- C#自定义字符串压缩和解压缩源码库
如下的内容是关于C#自定义字符串压缩和解压缩库的内容. class ZipLib{public static string Zip(string value){byte[] byteArray = n ...
- Python3 解题:字符串压缩
Python3 解题:字符串压缩 原题 https://leetcode-cn.com/problems/compress-string-lcci/ 题目: 字符串压缩.利用字符重复出现的次数,编写一 ...
最新文章
- Linux系统基础-管理之用户、权限管理
- 双十一报名截止,决赛在即!AI Challenger2018极客峰会免费抢票!
- ASP.NET中相对路径的使用总结
- boost::prior用法的测试程序
- mysql主库宕机能写吗_MYSQL主主切换(主库宕机)_MySQL
- php本地怎么接受小程序图片,怎么把本地图片当作小程序背景
- python PEP 487
- 第四:RobotFramework+Allure2生成精美测试报告
- 基于Android的手机邮件收发(JavaMail)之二( Welcome.java 和 ReceiveAndSend.java )
- vi 编辑器基本命令
- 程序猿应该拥有的浏览器
- 华为路由与交换 eSight 基本功能学习笔记
- linux 中文显示乱码解决办法
- Execl单元格图片锁定----一定能
- macbookair有没有touchbar_没有Touch Bar 全新13英寸MacBook Pro初体验
- exchange2007+outlook2007,无法使用外出助理
- div、span、label标签的区别
- 《Effective Modern C++》学习笔记之条款二十五:针对右值引用实施std::move,针对万能引用实施std::forward
- 用Label mx条码打印软件制作吊牌标签
- Random ErasingCutout——两种相似的数据增强方式
热门文章
- 思科金牌、银牌代理商名录
- 产品运营数据分析框架应该包含哪些重要指标?
- Win7如何录制内部声音 电脑录音软件在线录音
- 求时滞反应扩散方程(纽曼边界条件的)的matlab代码
- Couldn't register com.zyg.ios.XXX with the bootstrap server. Error: unknown error code.
- Android自适应大小和屏幕
- 2602 Bone Collector
- 广告优化师的修行境界之路?
- RBM代码Python
- js mysql orm_nodejs ORM框架对比