文章

35

粉丝

0

获赞

165

访问

5.2k

头像
字符串排序2 题解:
P1255 北京大学机试题
发布于2026年3月5日 13:08
阅读数 155

#include<bits/stdc++.h>
using namespace std;

int main()
{
	string s;
	while(getline(cin, s))
	{
		int n = s.size();
		vector<char> vc[26];
		for(int i = 0; i < n; i ++)
		{
			if(s[i] >= 'a' && s[i] <= 'z')
			{
				int pos = s[i] - 'a';
				vc[pos].push_back(i);
			}
			else if(s[i] >= 'A' && s[i] <= 'Z')
			{
				int pos = s[i] - 'A';
				vc[pos].push_back(i);
			}
		}
		string ss = "";
		for(int i = 0; i < 26; i ++)
		{
			for(int j = 0; j < vc[i].size(); j ++)
			{
				ss += s[vc[i][j]];
			}
		}
		int j = 0;
		for(int i = 0; i < n; i ++)
		{
			if((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z'))
			{
				cout << ss[j];
				j ++;
			}
			else cout << s[i];
		}
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发