《ACM程序设计》-Problem-Y-输出描述字符串
2017-03-19 23:07
190 查看
题意:
描述
外观和说明序列定义如下。从任何数字字符串开始作为序列中的第一个元素。每个后续元素是通过“口头”描述前一个元素从前一个元素定义的。例如,字符串122344111可以被描述为“一个1,两个2,一个3,两个4,三个1”。因此,在序列中的122344111之后的元素是1122132431.类似地,字符串101出现在1111111111之后。注意,通常不可能唯一地标识特定元素的前一元素。例如,112213243 1的字符串也产生1122132431作为下一个元素。
输入
输入包括多个案例。第一行给出了要跟踪的病例数。每个案例由一行最多1000位数字组成。
输出
对于每个测试用例,请打印给定字符串后面的字符串。
样品输入
3
122344111
1111111111
12345
示例输出
1122132431
101
1112131415
解题思路:因为最多有1000位数字,已经超出了int 范围,高精度计算不会,所以转变思路用字符串来做,但是我做的感觉还是太麻烦,检索完了以后把相应的值放到了两个数组里面一个放被描述的值,一个是那个值的个数,有人有检索完以后直接输出,这样比我的确实简洁了不少,感觉以后思维这方面还是要多锻炼多思考。
代码如下:
#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;
}
回顾:还是那句话,做题之前先看数据范围大小有它本来的类型能不能解决如果不能就转变思维,不要在一棵树上吊死。
描述
外观和说明序列定义如下。从任何数字字符串开始作为序列中的第一个元素。每个后续元素是通过“口头”描述前一个元素从前一个元素定义的。例如,字符串122344111可以被描述为“一个1,两个2,一个3,两个4,三个1”。因此,在序列中的122344111之后的元素是1122132431.类似地,字符串101出现在1111111111之后。注意,通常不可能唯一地标识特定元素的前一元素。例如,112213243 1的字符串也产生1122132431作为下一个元素。
输入
输入包括多个案例。第一行给出了要跟踪的病例数。每个案例由一行最多1000位数字组成。
输出
对于每个测试用例,请打印给定字符串后面的字符串。
样品输入
3
122344111
1111111111
12345
示例输出
1122132431
101
1112131415
解题思路:因为最多有1000位数字,已经超出了int 范围,高精度计算不会,所以转变思路用字符串来做,但是我做的感觉还是太麻烦,检索完了以后把相应的值放到了两个数组里面一个放被描述的值,一个是那个值的个数,有人有检索完以后直接输出,这样比我的确实简洁了不少,感觉以后思维这方面还是要多锻炼多思考。
代码如下:
#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;
}
回顾:还是那句话,做题之前先看数据范围大小有它本来的类型能不能解决如果不能就转变思维,不要在一棵树上吊死。
相关文章推荐
- 《ACM程序设计》-Problem-L-字符串反转输出
- AS3原生JSON输出字符串描述时的格式化
- Problem A: 输入字符串以及输出
- symbian 字符串描述符格式化format输出转换
- 第15周 oj Problem F: 将字符串格式化后输出(串)
- Problem A: 输入字符串以及输出
- 《ACM程序设计》-Problem-N-输出反转数字和
- 【问题描述】将给定的字符串,按照规格压缩,输出压缩后的字符串?
- 缓冲区数据转换为字符串输出
- 如何输出字符串指针所指的地址
- 给出一个函数来输出一个字符串的所有排列。
- 把数值类型转换成货币字符串的形式输出的细节若干
- PHP中一个控制字符串输出的函数
- 缓冲区数据转换为字符串输出
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串
- 使用printf输出各种格式的字符串
- 反向输出字符串
- 字符串转成字符数组,同时控制输出字符数——ToCharArray、Response.Write新用法(2006-04-20 15:32)
- 关于JSP中字符串输出问题
- 缓冲区数据转换为字符串输出