2 条题解
-
2
要拼最大的数,就要把最大的放在最前面,小的放后面,所以排个序后输出即可。
#include<bits/stdc++.h> using namespace std; bool cmp(string a,string b){ return a+b>b+a; } int main(){ int n; string a[30]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n,cmp); for(int i=0;i<n;i++) cout<<a[i]; return 0; } -
1
已经有人发题解了,我就稍微解释一下吧:
- 假设有两个字符串
string a和string b,a+b可以表示将a与b拼接后形成的字符串。 - 假设有两个字符串
string a和string b,a>b可以表示a的字典序大于b。a<b同理。
AC Code:
#include<bits/stdc++.h> using namespace std; string s[25]; int n; bool cmp(string a,string b){ return a+b>b+a; } int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>s[i]; sort(s+1,s+n+1,cmp); for(int i=1;i<=n;i++) cout<<s[i]; } - 假设有两个字符串
- 1
信息
- ID
- 120
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 4
- 已通过
- 3
- 上传者