PAT乙1084 关于string 再做一遍

  • 不管用哪种方法不能漏掉首尾
  • string可以 a+=b (string a; char b)
  • 此题保证ct<10;即相邻重复数字不超过10个,就可以简单转化为char,而不像12=>”12”
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    string a;
    int n;
    cin>>a>>n;
    while(--n)
    {
        string b;
        int l=a.length();
        char t=a[0];
        int ct=0;
        for(int i=0;i<l;i++)
        {
            if(a[i]==t)ct++;
            else
            {
                b+=t;
                b+=ct+'0';
                t=a[i];ct=1;
            }
        }
        if(ct>0)
        {
            b+=t;
            b+=ct+'0';
        }
        a=b;
    }
    cout<<a<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_40367307/article/details/81322488