#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;
#include<iomanip>
#include<cmath>
#include<stdio.h>
bool cmp(string x, string y)//字符串数字排序函数
{
if(x[0]=='-'&&y[0]!='-')
return true;
else if(y[0]=='-'&&x[0]!='-')
return false;
else if(y[0]!='-'&&x[0]!='-')
{
if(y.size()>x.size()) return true;
else if(y.size()<x.size()) return false;
else return x<y;
}
else
{
if(y.size()<x.size()) return true;
else if(y.size()>x.size()) return false;
else return !(x<y);
}
}
int main()
{
int n;//输入n个数字
cin>>n;
vector<string> v;
for(int i=0;i<n;i++)
{
string t;
cin>>t;
v.push_back(t);//数字以字符串方式保持
}
sort(v.begin(),v.end(),cmp);//排序
for(int i=0;i<n;i++)
{
cout<<v[i]<<endl;
}
}
字符串数字排序
最新推荐文章于 2024-09-07 05:15:02 发布