思路
这道题数据范围很小,可以直接给字符串排序,大的在前小的在后,然后直接输出就好了。
注意如果用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;
} 
京公网安备 11010502036488号