字符串操作
1 拼数 LGP1012
题解
string类型不会真是个事啊,多个字符串开char也不是事啊...
思想很简单,如果\(A+B<B+A\),则\(B\)和\(A\)应该调换(类似冒泡排序)
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
string a[30];
int n;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<n;i++) //排序
{
for(int j=i+1;j<=n;j++)
{
if(a[j]+a[i]>a[i]+a[j]) //string类型可以直接比较大小
{
swap(a[j],a[i]); //交换a[i]与a[j],同样可以用swap(a[i],a[j]);
}
}
}
for(int i=1;i<=n;i++) cout<<a[i];
return 0;
}
原文地址:https://www.cnblogs.com/liuziwen0224/p/fuxi2.html
时间: 2024-10-10 17:15:50