SDUT 2352 Run Length Encoding
题意 :将给定的字符串编码,编码的规则根据两条,1.如果字符串里有连续相等的字符,就变为两个字符,一个是这些连续相同的字符的个数,另一个是这个字符,但是如果数量超过了9个,那就输出9再输出这个字符,剩下的重新按照规则进行,例如AAAA,就输出4A,AAAAAAAAAAA输出9A2A,2.如果字符串里有连续不相等的字符,就将这些字符原样输出并且在前后各加一个1,如果字符串里有刚好有个1,就将这个1变为11,AAAABCCC输出4A1B13C,123444输出11123134,1111111111输出911111。
思路 :就是一道顶麻烦的题,如果不好好读题的话,就很难办,因为有很多细节问题都需要注意,比如说输入空格也算字符,输入换行也要处理。最后一组样例是10个1,按照编码规则先输出9个1,还剩一个1就要根据规则2进行编码,因为是1个1所以要在前后各加一个1,又因为是一个单独的1,所以要把1变成11
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <algorithm> const int maxn = ;
char sh[maxn] ;
char ch[maxn] ; using namespace std; int main()
{
while(gets(sh))
{
int x = ,j ;
int len = strlen(sh) ;
// printf("%d",len);
for(int i = ; i < len ; )
{
j = i + ;
if(sh[i] == sh[j])
{
while(sh[i] == sh[j])
{
j++ ;
if(j - i >= )
break ;
}
ch[x++] = j-i+'' ;
ch[x++] = sh[i] ;
i += (j-i) ;
}
else
{
while((sh[j] != sh[j+] && j+ < len) || j == len-)
j++ ;
ch[x++] = '' ;
for(int ii = i ; ii < j ; ii++)
{
ch[x++] = sh[ii] ;
if(sh[ii] == '' )
ch[x++] = '' ;
//if(j == 0 && sh[j] != sh[j+1])
//ch[x++] = '1' ;
}
ch[x++] = '' ;
i += (j-i) ;
}
}
ch[x] = '\0' ;
printf("%s\n",ch) ;
}
return ;
}
SDUT 2352 Run Length Encoding的更多相关文章
- poj-1782 Run Length Encoding
http://poj.org/problem?id=1782 Run Length Encoding Time Limit: 1000MS Memory Limit: 30000K Total S ...
- Two-Pointer 之 Run Length Coding (RLC)
游程编码(Run Length Coding, RLC)是串处理中常见的预处理方法.其写法是典型的双指针(Two-Pointer).下面总结其写法1.输入为一串整数可以不把整数存在数组里
- Count and Say (Array Length Encoding) -- LeetCode
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
- 游程编码(Run Length Code)
一.什么是游程编码 游程编码是一种比较简单的压缩算法,其基本思想是将重复且连续出现多次的字符使用(连续出现次数,某个字符)来描述. 比如一个字符串: AAAAABBBBCCC 使用游程编码可以将其描述 ...
- 游程编码run length code
今天突然看到一个名词,游程编码.也叫行程编码. 简单理解就是,几个相同连续的字符,然后用数字统计表示. 举个例子: aaaabbbccc 用游程编码的表示就是4a3b3c 如果:连续字符只有一个 那么 ...
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- 大数据下的Distinct Count(二):Bitmap篇
在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样介绍bitmap的: B ...
- hive中rcfile格式(收藏文)
首先声明,此文是属于纯粹收藏文,感觉讲的很不错. 本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮 ...
随机推荐
- Android开发——构建自定义组件
Android中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button). 文本框(TextView), 可编辑文本框(EditText), 列表框(ListView), 复选框 ...
- magento搜索属性值的设置方法
前台特性(Frontend Properties)在快速搜索中应用(Use in quick search) - 开启此选项,在客户使用Header中的 搜索功能时Magento将搜索所有产品这个At ...
- NUnit使用详解(一)
转载:http://hi.baidu.com/grayworm/item/38e246165aa7b9433a176e90 NUnit是一个单元测试框架,专门针对于.NET来写的,它是是xUnit的一 ...
- Android 设计随便说说之简单实践(消息流动)
在上面两篇分别说明了设计中较为简单也是很关键的实践点. 第一模块划分,它是根据每个模块所承载的业务,进行划分,是应用程序一个静态的描述. 第二合理组合,它是是将每个模块调动起来,共同实现业务,是一个准 ...
- ajax跨域访问 java controller 和 cxf(webservice) 配置方式(CORS)
1. controller跨域访问,配置方式 重点在这里: <mvc:cors> <mvc:mapping path="/*" allowed-origins=& ...
- Help View修复
好吧,手贱把ProgramData里关于Help View的某些数据删除了 (在任何情况下都不要删除此文件夹中的任何数据).即使卸载后重新安装也出现错误,可以参考的http://social.msdn ...
- Solr 1.3 安装步骤
可以通过以下三种方式之一设置 Solr 的主位置: 1.设置 java 系统属性 solr.solr.home (没错,就是 solr.solr.home). 2.配置 ...
- linux/windows系统oracle数据库简单冷备同步
linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...
- swing容器继承重绘问题解决
swing容器继承重绘问题解决 以JPanel为例,继承JPanel,想动态为器更换背景,这就涉及到重绘问题.一下是本人重写代码: package ui; import java.awt.Grap ...
- (hdu)1160 FatMouse's Speed
Problem Description FatMouse believes that the fatter a mouse is, the faster it runs. To disprove th ...