题目
解题
方法一:
将字母存储起来,放入vector中,用queue来保持规则二
输出结果时,将vector从投开始遍历,保证规则一
#include <iostream> #include <string> #include <vector> #include<queue> using namespace std; int main(){ vector<queue<char>> vec(26); string s; getline(cin,s); for(char c:s){ if(c>='A'&&c<='Z'){ vec[c-'A'].push(c); }else if(c>='a'&&c<='z'){ vec[c-'a'].push(c); } } string res; int idx=0; for(char c:s){ if(c>='A'&&c<='Z'||c>='a'&&c<='z'){ while(vec[idx].empty()) idx++; char t=vec[idx].front(); vec[idx].pop(); res+=t; }else{ res+=c; } } cout<<res; }