【PAT乙级】1078 字符串压缩与解压

题目链接:1078 字符串压缩与解压

#include <iostream>
using namespace std;

int main(){
    int count,i;
    char c;
    string s;
    cin >> c;
    getchar();
    getline(cin, s);
    if(c == 'C'){
        i = 1;
        while(i<s.length()){
            count = 1;
            while(s[i-1] == s[i] && i<s.length()){
                count++;
                i++;
            }
            if(count>1) cout<< count;
            cout << s[i-1];
            if(i == s.length() - 1 && s[i] != s[i-1]) cout << s[i];
            i++;
        }
    }
    if(c == 'D'){
        i = 0;
        while(i<s.length()){
            count = 0;
            while(s[i] >= '0' && s[i] <= '9'){
                count = count * 10 + (s[i] - '0');
                i++;
            }
            if(!count) count = 1;
            for(int j=0;j<count;j++){
                cout << s[i];
            }
            i++;
        }
    }
    cout << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wulingyu501/article/details/109046602
今日推荐