题解 | #字符串排序#用26个队列保存所有字母

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

#include <iostream>
#include <string>
#include <vector>
#include <bits/stdc++.h>

using namespace std;

int main(){
    string str, line;
    getline(cin, line);

    int len = line.size();
    vector<queue<char>> f(26);
    for(int i=0; i<len; ++i) {
        char a = line[i];
        if(isalpha(a)) {
            f[tolower(a) - 'a'].push(a);
        }
    }
    
    int i=0;
    for(int j=0; j<26; ++j) {
        while(!f[j].empty()) {
            if(isalpha(line[i])) {
                line[i] = f[j].front();
                f[j].pop();
            }
            ++ i;
            if(i == len) break;
        }
        if(i == len) break;
    }

    cout << line << endl;
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:01
点赞 评论 收藏
分享
真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
你们的毕业论文什么进度了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务