PTA乙级题 1084. 外观数列 (20)

【题目链接】


事实证明还是string 好用。QAQ。

AC代码

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int i, j, k, n;
    string a, b;
    cin >> a >> n;
    for (k = 1; k < n; k++)
    {
        b.clear();
        for (i = 0; i < a.size(); i = j)
        {
            for (j = i; j < a.size(); j++)
            {
                if (a[i] != a[j])
                    break;
            }
            b = b + a[i] + to_string(j - i);
        }
        a = b;
    }
    cout << a;
}

暴力,最后一个点运行超时。。

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int i,j,x=0,n,count;
    char d,flag=0,a[100000],b[100000];
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    cin>>d>>n;
    a[0]=d;
    for (i=1;i<n;i++)
    {
        count=1;
        x=0;
        flag=a[0];
        for (j=1;j<strlen(a);j++)
        {
            if (flag==a[j])
            count++;
            else
            {
                b[x++]=flag;
                b[x++]=count+'0';
                count=1;
                flag=a[j];
            }
        }
        b[x++]=flag;
        b[x++]=count+'0';
        strcpy(a,b);
    }
    puts(a);
}