题解 | #字符串排序#
字符串排序
http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
int a;
string b[1000];
while(cin>>a)
{
for(int i=0;i<a;i++)
{
cin>>b[i];
}
for(int i=0;i<a-1;i++)
{
for(int j=i+1;j<a;j++)
{
int g=0;
for(int m=0;m<min(b[i].length(),b[j].length());m++)
{
int c,d;
// if(b[i][m]>='A'&&b[i][m]<='Z')
// {
// c=b[i][m]+32;
// }
// else
// {
c=b[i][m];
//}
// if(b[j][m]>='A'&&b[j][m]<='Z')
// {
// d=b[j][m]+32;
// }
// else
//{
d=b[j][m];
// }
if(c<d||c>d)
{
g=1;
}
if(c>d)
{
string f=b[i];
b[i]=b[j];
b[j]=f;
break;
}
else if(c<d)
{
break;
}
}
if((b[i].length()>b[j].length())&&(g==0))
{
string f=b[i];
b[i]=b[j];
b[j]=f;
}
}
}
for(int i=0;i<a;i++)
{
cout<<b[i]<<endl;
}
}
return(0);
}
#include <iostream>
using namespace std;
int main()
{
int a;
string b[1000];
while(cin>>a)
{
for(int i=0;i<a;i++)
{
cin>>b[i];
}
for(int i=0;i<a-1;i++)
{
for(int j=i+1;j<a;j++)
{
int g=0;
for(int m=0;m<min(b[i].length(),b[j].length());m++)
{
int c,d;
// if(b[i][m]>='A'&&b[i][m]<='Z')
// {
// c=b[i][m]+32;
// }
// else
// {
c=b[i][m];
//}
// if(b[j][m]>='A'&&b[j][m]<='Z')
// {
// d=b[j][m]+32;
// }
// else
//{
d=b[j][m];
// }
if(c<d||c>d)
{
g=1;
}
if(c>d)
{
string f=b[i];
b[i]=b[j];
b[j]=f;
break;
}
else if(c<d)
{
break;
}
}
if((b[i].length()>b[j].length())&&(g==0))
{
string f=b[i];
b[i]=b[j];
b[j]=f;
}
}
}
for(int i=0;i<a;i++)
{
cout<<b[i]<<endl;
}
}
return(0);
}