点我看题目

题意 :将给定的字符串编码,编码的规则根据两条,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的更多相关文章

  1. poj-1782 Run Length Encoding

    http://poj.org/problem?id=1782 Run Length Encoding Time Limit: 1000MS   Memory Limit: 30000K Total S ...

  2. Two-Pointer 之 Run Length Coding (RLC)

    游程编码(Run Length Coding, RLC)是串处理中常见的预处理方法.其写法是典型的双指针(Two-Pointer).下面总结其写法1.输入为一串整数可以不把整数存在数组里

  3. 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, ...

  4. 游程编码(Run Length Code)

    一.什么是游程编码 游程编码是一种比较简单的压缩算法,其基本思想是将重复且连续出现多次的字符使用(连续出现次数,某个字符)来描述. 比如一个字符串: AAAAABBBBCCC 使用游程编码可以将其描述 ...

  5. 游程编码run length code

    今天突然看到一个名词,游程编码.也叫行程编码. 简单理解就是,几个相同连续的字符,然后用数字统计表示. 举个例子: aaaabbbccc 用游程编码的表示就是4a3b3c 如果:连续字符只有一个 那么 ...

  6. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  7. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  8. 大数据下的Distinct Count(二):Bitmap篇

    在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样介绍bitmap的: B ...

  9. hive中rcfile格式(收藏文)

    首先声明,此文是属于纯粹收藏文,感觉讲的很不错. 本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮 ...

随机推荐

  1. iOS之NSNotificationCenter通知中心使用事项

    其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制的,我们控制不了,我们只能控制监听操作,类似于Androi ...

  2. C# winCE连接SQL数据库

    General network error.  Check your network documentation. 错误解决方法 1. public static string Sqlstr = &q ...

  3. MVC小系列(十三)【全局异常处理与异常日志】

    在MVC网站的global.asax中的Application_Start方法里,有这样一段代码 protected void Application_Start() { //它的主要作用是将全局过滤 ...

  4. Java获取某年某周的最后一天

    package test; import java.text.SimpleDateFormat; import java.util.Calendar; /** * ClassName: LastDay ...

  5. WPF动画之路径动画(3)

    XAML代码: <Window x:Class="路径动画.MainWindow" xmlns="http://schemas.microsoft.com/winf ...

  6. Visual Studio2013使用Microsoft Office Document Imaging(MODI)的方法

    若要安装和 Microsoft Office 2013 一同使用的 Microsoft Office Document Imaging (MODI),请选择以下方法之一: 方法 1:通过安装 Shar ...

  7. HDU 2809 God of War(DP + 状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2809 题目大意:给出战神吕布的初始攻击力ATI.防御力DEF.生命值HP.每升一级增加的攻击力In_A ...

  8. ubuntu desktop 开机 连接网络

    参考   http://linux.net527.cn/Ubuntu/Ubuntuanzhuangyuyingyong/2490.html

  9. android studio 自动序列化类插件

    https://github.com/mcharmas/android-parcelable-intellij-plugin

  10. important的妙用

    !important: 为某些样式设置具有最高权值,高于id选择器 用法: !important要写在分号的前面 例如: <p class="first">!impor ...