思路
这道题数据范围很小,可以直接给字符串排序,大的在前小的在后,然后直接输出就好了。
注意如果用strcmp进行字符串大小比较的话,“123”会在"12"之后,所以正确方法应该是s1+s2>s2+s1。
代码
#include<bits/stdc++.h> using namespace std; string s[25]; int n; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ cin>>s[i]; } for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(s[i]+s[j]<s[j]+s[i]){ swap(s[i],s[j]); } } } for(int i=1;i<=n;i++) cout<<s[i]; return 0; }