HJ26 字符串排序

简介: HJ26 字符串排序

题目

题目连接

解题

方法一:

将字母存储起来,放入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;
}
相关文章
|
人工智能
华为机试HJ26:字符串排序
华为机试HJ26:字符串排序
|
算法
华为机试HJ14:字符串排序
华为机试HJ14:字符串排序
|
6月前
|
算法
HJ108 求最小公倍数
HJ108 求最小公倍数
47 0
华为机试HJ106:字符逆序
华为机试HJ106:字符逆序
117 1
|
容器
华为机试HJ102:字符统计
华为机试HJ102:字符统计
161 1
华为机试HJ65:查找两个字符串a,b中的最长公共子串
华为机试HJ65:查找两个字符串a,b中的最长公共子串
华为机试HJ12:字符串反转
华为机试HJ12:字符串反转
华为机试HJ81:字符串字符匹配
华为机试HJ81:字符串字符匹配
|
容器
华为机试HJ89:24点运算
华为机试HJ89:24点运算
139 0