其他分享
首页 > 其他分享> > 1078 字符串压缩与解压 较简单

1078 字符串压缩与解压 较简单

作者:互联网

代码

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int main()
{
	char ch;
	string s;
	char tmpc;
	int tmp=0;
	cin>>ch;
	getchar(); 
	if(ch=='C'){
		getline(cin,s);
		for(int i=0;s[i]!=NULL;i++){
			if(i==0){
				tmpc=s[i];
			}
			if(tmpc==s[i]){
				tmp++;
			}
			else{
				if(tmp==1){
					cout<<tmpc;
				}
				else{
					cout<<tmp<<tmpc;
				}
				tmpc=s[i];
				tmp=1;
			}
		}
		if(tmp==1){
			cout<<tmpc;
		}
		else{
			cout<<tmp<<tmpc;
		}
	}
	else if(ch=='D'){
		getline(cin,s);
		for(int i=0;s[i]!=NULL;i++){
			if(i==0){
				tmp=1;
			}
			if(s[i]<='9'&&s[i]>='0'){
				if(tmp==1){
					if(i>=1&&s[i-1]=='1'){
						tmp=tmp*10+(s[i]-'0');
					}
					else{
						tmp=s[i]-'0';
					}
				}
				else{
					tmp=tmp*10+(s[i]-'0');
				}
			}
			else{
				for(int j=0;j<tmp;j++){
					cout<<s[i];
				}
				tmp=1;
			}
		}
	}
	
	return 0;
}

标签:解压,tmp,ch,1078,int,tmpc,else,字符串,include
来源: https://www.cnblogs.com/wodeblog1982/p/16472043.html