题意:
描述
外观和说明序列定义如下。从任何数字字符串开始作为序列中的第一个元素。每个后续元素是通过“口头”描述前一个元素从前一个元素定义的。例如,字符串122344111可以被描述为“一个1,两个2,一个3,两个4,三个1”。因此,在序列中的122344111之后的元素是1122132431.类似地,字符串101出现在1111111111之后。注意,通常不可能唯一地标识特定元素的前一元素。例如,112213243 1的字符串也产生1122132431作为下一个元素。
输入
输入包括多个案例。第一行给出了要跟踪的病例数。每个案例由一行最多1000位数字组成。
输出
对于每个测试用例,请打印给定字符串后面的字符串。
样品输入
3
122344111
1111111111
12345
示例输出
1122132431
101
1112131415
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{ int n,j,i,b[10002],r,m;
string h,x="\n";
char a[10002];
cin>>n;
getline(cin,x);
for(m=0;m<n;m++)
{ j=0;
getline(cin,h);
a[j]=h[0];
b[j]++;
i=1;
r=h.size();
while(i<r)
{
if(h[i]==a[j])
b[j]++;
else
{
a[++j]=h[i];
b[j]++;
}
i++;
}
for(int q=0;q<=j;q++)
cout<<b[q]<<a[q];
cout<<endl;
for(int q=0;q<10002;q++)
b[q]=0;
}
return 0;
}
回顾:还是那句话,做题之前先看数据范围大小有它本来的类型能不能解决如果不能就转变思维,不要在一棵树上吊死。