洛谷P1012拼数
题目如下:
思路如下:
1.首先会想到 把三个数从大到小的排列一遍
比如样例中的 34331213
但是可能会忽略一种情况 32 312 这种
字符串比较大小的时候 会输出31232 但是这种
就不是最大的了
2.骚操作就在这里 重新编写一个比较大小的函数
a+b>b+a //32 312 输出 32312
代码如下(不知道为什么我的编译器dev 不能运行出来,
但是却可以提交通过)
代码如下:
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; bool cmp(string a,string b){ return a+b>b+a; //12 112 } int main(){ int n; string s[n+1]; cin>>n; for(int i=0;i<n;i++) cin>>s[i]; sort(s,s+n,cmp); for(int i=0;i<n;i++) cout<<s[i]; return 0; }
无聊就学习 反正没事干
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步