您的位置:首页 > 其它

字符串排序(华为特殊规则)

2017-05-20 15:06 741 查看
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[100000],b[100000];
while(gets(a))
{
int n=0;
for(int i=0; i<strlen(a); i++)
{
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
{
b[n++]=a[i];
}
}
int flag=1;
for(int i=0; i<n&&flag; i++)
{
flag=0;
for(int j=n-1; j>i; j--)
{
char a1=(b[j]>='A'&&b[j]<='Z')?b[j]-'A'+'a':b[j];
char b1=(b[j-1]>='A'&&b[j-1]<='Z')?b[j-1]-'A'+'a':b[j-1];
if(a1<b1)
{
int temp=b[j];
b[j]=b[j-1];
b[j-1]=temp;
flag=1;
}
}
}
n=0;
for(int i=0; i<strlen(a); i++)
{
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
a[i]=b[n++];
}
for(int i=0; i<strlen(a); i++)
cout<<a[i];
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法