3135. 数据压缩

computerLearner

提供笨蛋方法 勿喷

#include<iostream>
#include<string>
using namespace std;
int main(){
    int times;
    cin >> times;
    for(int i = 0; i < times; i++){
        string str;
        cin >> str;
        int cnt = 0;
        cout << "case #" << i << ':' << endl;
        for(int j = 0; j < str.length(); j++){
            if(str[j] == str[j+1]){
                cnt++;
                if(cnt == 255){
                    cout << "255" << str[j];
                    cnt = 0;
                }
            }
            else{
                cout << cnt+1 << str[j];
                cnt = 0;
            }
        }
        cout << endl;
    }
}
Li Dao

看似复杂,实则直接模拟即可

include

using namespace std;
int T;
string strs;

void solve()
{
cin>>strs;
int ll=strs.length();

int cnt=1;

for(int i=1;i<ll;i++)
if(strs[i]==strs[i-1])
{
if(cnt==255) {printf(“%d%c”,cnt,strs[i-1]);cnt=1;}
else cnt++;
}
else {printf(“%d%c”,cnt,strs[i-1]);cnt=1;}
printf(“%d%c”,cnt,strs[ll-1]);
cout<<endl;
return;
}
int main()
{
scanf(“%d”,&T);
for(int step=0;step<T;step++)
{
printf(“case #%d:\n”,step);
solve();
}
return 0;
}

完全A不出

include

include

using namespace std;

struct My
{
char ch=‘0’;
int num=1;
};

My Array[1000];

int main()
{
int T;
cin>>T;
for(int j=0;j<T;j++)
{
cout<<”case #”<<j<<”:”<>str;
int k=0;
for(unsigned int i=0;i<str.size();i++)
{
Array[k].ch=str[i];
if(str[i]==str[i+1]) Array[k].num++;
else k++;
}
for(int j=0;j255)
{
cout<<255<<Array[j].ch;
Array[j].num-=255;
}

        cout<<Array[j].num<<Array[j].ch;
    }
    for(int i=0;i<1000;i++)
    {
        Array[i].ch='0';
        Array[i].num=1;
    }

    cout<<endl;
}
return 0;

}

你当前正在回复 博客/题目
存在问题!