31:字符串p型编码

总时间限制: 1000ms 内存限制: 65536kB

描述
给定一个完全由数字字符(‘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型编码串。
样例输入
122344111
样例输出
1122132431

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main(){
	string str; 
	cin>>str; 
	
	int num[1100]={0};           //表示连续相同数字字符共有几个 
	char ch[1100];               //表示连续相同的数字字符是什么 
	
	int n=0;                    //表示第n个要处理输出的字符 
	for(int i=0;i<str.size();i++){
		
		if(ch[n]==str[i]){     //字符是否与上一个字符相同
			num[n]++;          //相同,字符长度加一 
		}else{                 //否则,字符与之前不同,初始化数组ch,num 
			n++;
			ch[n]=str[i];
			
			num[n]=1;
		} 
	}
	
	for(int i=1;i<=n;i++){
		cout<<num[i]<<ch[i];
	}
	return 0;
}
发布了36 篇原创文章 · 获赞 0 · 访问量 361

猜你喜欢

转载自blog.csdn.net/weixin_44437496/article/details/103978563
今日推荐