北邮第四次机考
题目描述
某电商在给它所有的书排序时比其他电商多了一个排序依据,就是依据书名的缩写排序。如果我们规定书名的缩写为书名中所有的大写字母,请你写一段依据此规则的排序程序。
输入:第一行为一个正整数n(0<n<10000)。后边是n行,每行一个字符串,代表书名,每个字符串中仅包含大写字母和小写字母,且长度小于1000。
输出:
共n行,每行为一个字符串,为排序后的书名(依据我们所说的缩写升序排列)。
样例解释:
TheCProguammingLanguage的缩写为TCPL,CPrimerPlus的缩写为CPP,TheArtofComputerProgramming的缩写为TACP,ComputerSystemsAProgrammersPerspective的缩写为CSAPP
注意:此题内存有限制
由此可见,这道题其实要能做出答案其实没有很大的困难,但关键是这道题的一个内存限制。
给出的代码如下
#include<bits/stdc++.h>
using namespace std;
struct l{
string a;
string b;
};
bool cmp(l e,l r)
{
return e.b<r.b;
}
int main(){
int n;
cin>>n;
l qw[n+1];
for(int i=1;i<=n;i++)
{
cin>>qw[i].a;
int c=qw[i].a.size();
int o=-1;
for(int j=0;j<=c;j++)
{
if(qw[i].a[j]<'a')
qw[i].b+=qw[i].a[j];
}
}
sort(qw+1,qw+n+1,cmp);
for(int i=1;i<=n;i++)
{
cout<<qw[i].a<<endl;
}
return 0;
}