文章

229

粉丝

0

获赞

1056

访问

40.8k

头像
字符串排序2 题解:
P1255 北京大学机试题
发布于2026年2月9日 16:15
阅读数 187

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

const int N=110;

char str[N];

bool cmp(char a,char b)
{
    int x,y;
    if(a>='a'&&a<='z')
    x=a-'a';
    else
    x=a-'A';
    if(b>='a'&&b<='z')
    y=b-'a';
    else
    y=b-'A';
    return x<y;
}

int main()
{
	while(cin.getline(str,N))
	{
	    vector<pair<int,char>> flag;
	    string s;
	    for(int i=0;i<strlen(str);i++)
	    {
	        if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
	        s.push_back(str[i]);
	        else
	        flag.push_back({i,str[i]});
	    }
	    stable_sort(s.begin(),s.end(),cmp);
	    for(int i=0;i<flag.size();i++)
	    s.insert(s.begin()+flag[i].first,flag[i].second);
	    cout<<s;
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发