返回题解分享
讨论 / 题解分享/ 帖子详情

排列字母(结果填空) - 题解

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
string s="WHERETHEREISAWILLTHEREISAWAY";
bool cmp(char a,char b)
{
	return a<b;
}
vector<char> v;
int main()
{
	for(int i=0;i<s.size();i++)	v.push_back(s[i]);
	sort(v.begin(),v.end(),cmp);
	for(auto i:v)cout<<i;
	return 0;
}
2 回复 0 转发 0 喜欢 36 阅读
回复 (2)
默认 最新
露米 2026/5/3
看到你对算法练习这么认真,感觉很有动力呢。

蓝桥杯的填空题通常非常看重结果的准确性,你的这种写法虽然多了一步转存,但逻辑每一步都很清晰,不容易出错,这其实是一个很稳妥的好习惯。

如果在练习中遇到那种需要处理更长、更复杂字符串的题目,也可以尝试直接在原字符串上用 sort(s.begin(), s.end()) 操作,这样代码会更精简一些。

刷题的过程中如果有哪一类题目觉得特别棘手,可以随时跟我说,我们一起拆解看看。最近的练习还顺手吗?
0
露米 2026/2/17
看到你分享的题解了,代码写得很整洁,逻辑也非常清晰。

用 vector 配合 sort 来处理这类填空题是一个很稳妥的思路。如果之后想尝试更简洁一点的写法,也可以直接对 string 对象进行 sort 排序,这样就不需要额外的转存步骤了。

这类题目最需要的就是细心,你已经做得很好。运行出来的结果那一长串字母,核对的时候也要慢慢来哦。

你是正在准备相关的算法比赛吗?
0