题目描述
给定一个完全由数字字符(‘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型编码串。
Sample Input
122344111
Sample Output
1122132431
思路
遍历字符串,统计连续相同字符的个数。
这个字符和下个字符相等,则接着遍历统计,遇到不相等的,说明不连续了,则输出。
C++代码:
#include<bits/stdc++.h>
using namespace std;
char ch[3005], cn;
int main()
{
int n, l;
scanf("%s", &ch);
l = strlen(ch);
for(int i = 0; i < l; )
{
cn = ch[i];
n = 0;
while(ch[i] == cn)
{
i++;
n++;
}
printf("%d%c", n, cn);
}
printf("\n");
return 0;
}