时间限制:1 s 空间限制:256 MB
题目描述
给定一个完全由数字字符(′0′,′1′,′2′,…,′9′)构成的字符串str,请写出str的 p 型编码串。
例如:字符串 122344111
可被描述为 1个1、2个2、1个3、2个4、3个1
,因此我们说122344111
的p 型编码串为 1122132431
;
类似的道理,编码串 101
可以用来描述 1111111111
;00000000000
可描述为 11个0
,因此它的p型编码串即为 110
;100200300
可描述为 1个1、2个 0、1个2、2个0、1个3、2个0
,因此它的 p 型编码串为 112012201320
。
输入格式
输入仅一行,包含字符串str。
字符串最多包含 1000 个数字字符。
输出格式
输出该字符串对应的 p 型编码串。
样例 #1
样例输入 #1
122344111
样例输出 #1
1122132431
分析:
这道题可看做:
已知一个由纯数字构成的字符串str,我们把连续的几个相同的数字看做一个区间,则输出这个区间的个数和数字.
所以,不难发现,我们可以用一个变量b和zc(乱编的name,b为输进去的数,zc为上一个数)来判断这个区间是否结束,如果b!=zc,则输出这个区间的个数和数字.
代码:
#include <bits/stdc++.h>
using namespace std;
int zc,num=1; //num存个数
char b;
int main()
{
b=getchar();
zc=int(b-'0'); //特判第一个
for(int i=0;i<(i+1);i++)
{
b=getchar();
if(int(b)==10)
{
cout<<num<<zc;
return 0;
}
if(zc!=int(b-'0'))
{
cout<<num<<zc;
zc=int(b-'0');
num=1;
continue;
}
num++;
}
}
题目来源:xdfz的oj官网