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