题解 | #字符串排序#

字符串排序

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

#include<iostream>
#include<map>
#include <string>
using namespace std;
int main() {
    string s1;
    multimap<char, char> mp;
    getline(cin, s1);
    for (int i = 0; i < s1.size(); i++) {
        if (s1[i] >= 'A' && s1[i] <= 'Z')
            mp.insert({s1[i], s1[i]});
        else if (s1[i] >= 'a' && s1[i] <= 'z')
            mp.insert({s1[i] + 'A' - 'a', s1[i]});
    }
    string sorts1;
    for (auto j : mp) {
        sorts1 += j.second;
    }
    int count = -1;
    for (int i = 0; i < s1.size(); i++) {

        if (sorts1.find(s1[i]) != string::npos) {
            count += 1;
            cout << sorts1[count];
        } else {
            cout << s1[i];
        }


    }


    return 0;


使用multimap 排序,关键字采用大写字母排序,先选出来字母项,值存原来的值,然后遍历输出,遇到字母输出map容器值,非字母输出原值
全部评论

相关推荐

不愿透露姓名的神秘牛友
12-16 15:57
小鹏汽车 java后端 22*15(固定13,2个月年终) 硕士211
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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