小乐同学学会了用程序做进制转换,异常高兴。小鹏为了不让他骄傲自满,决定出道难点的题目考考他。字母集A到Z,依次表示26到1,26个数字。也就是A=26,B=25…Z=1。他用这些字符来构建了一个26进制的计数方式。比如(ZZ)26进制=(27)10进制。
输入描述
第一行数字N,表示接下来会有N行输入数据。(N<1000)
接下来的N行,每行一个长度不超过100的字符串。
输出描述
输出排序(从小到大)之后的字符串,一行一个。
//本质是比较大小
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
bool compare(string a,string b)
{
if(a.size()>b.size()) return true;
else if(a.size()<b.size()) return false;
else if(a.size()==b.size())
{
for(int i=0;i<a.size();i++)
{
if(a[i]>b[i]) return false;
else if(a[i]<b[i]) return true;
}
}
}
int main()
{
int n;string a[1000];
cin>>n;int min;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
//选择排序
for(int i=0;i<n;i++)
{
min=i;
for(int j=i+1;j<n;j++)
{
if(compare(a[min],a[j])) min=j;
}
swap(a[i],a[min]);
}
for(int i=0;i<n;i++)
cout<<a[i]<<endl;
return 0;
}