题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/d9aa3894d3aa4887843a85d26daa4437
#include <bits/stdc++.h>
using namespace std;
bool cmp(char a,char b)
{
//大写化为小写,再比较,满足题目所要求的不区分大小写
if(a>='A'&&a<='Z') a=a-'A'+'a';
if(b>='A'&&b<='Z') b=b-'A'+'a';
return a<b;
}
bool isWord(char a)
{
if((a>='a'&&a<='z')||(a>='A'&&a<='Z')) return true;
else return false;
}
int main(){
string s;
while(getline(cin,s))
{
string t;
for(int i=0;i<s.size();i++)
{
if(isWord(s[i]))//是英文字母
{
t+=s[i];
}
}
stable_sort(t.begin(),t.end(),cmp);//要求稳定排序
for(int i=0;i<s.size();i++)
{
if(!isWord(s[i]))
{
t.insert(t.begin()+i,s[i]);
}
}
cout<<t<<endl;
}
return 0;
}
#计算机考研复试jishi#
查看9道真题和解析