PAT1038. Recover the Smallest Number

Posted zeroArn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT1038. Recover the Smallest Number相关的知识,希望对你有一定的参考价值。

//意识到一个重要错误,一直以为atoi,itoa是windows独有的,linux下不可用,直到刚刚。。。

//string+=比strcat好用多了,字符比较也方便的多,但是用scanf读入string,好麻烦。。。cin读入老是出错不晓得为什么,cin对于空格和换行符的处理还不是很清楚,c++没有系统学习,半c半++中。。。。,刷完一定找机会吧c++系统一下

//突然想起来第一次刷时,居然一个一个字符的比较。。。。。哭晕

#include<cstdio>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
typedef struct
{
char str[10];
}node;
vector<node>list;
bool cmp(node a,node b)
{
char s1[20],s2[20];
strcpy(s1,a.str);strcpy(s2,b.str);
strcat(s1,b.str);strcat(s2,a.str);
return strcmp(s1,s2)<0;
}
int main()
{
freopen("input.txt","r",stdin);
int i,n;
long int s;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
node tmp;
scanf("%s",tmp.str);
s=atoi(tmp.str);
if(s!=0)list.push_back(tmp);
}
if(list.size()==0)printf("0");
else
{
sort(list.begin(),list.end(),cmp);
s=atoi(list[0].str);
printf("%ld",s);
for(i=1;i<list.size();i++)printf("%s",list[i].str);
}
printf("\n");
}
return 0;
}

以上是关于PAT1038. Recover the Smallest Number的主要内容,如果未能解决你的问题,请参考以下文章

PAT1038. Recover the Smallest Number

PAT Advanced 1038 Recover the Smallest Number (30分)

PAT Advanced 1038 Recover the Smallest Number (30) [贪?算法]

PAT (Advanced Level) 1038. Recover the Smallest Number (30)

[PAT] A1038 Recover the Smallest Number

PAT甲题题解-1038. Recover the Smallest Number (30)-排序/贪心,自定义cmp函数的强大啊!!!