题解 | #字符串排序#

字符串排序

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容器值,非字母输出原值
全部评论

相关推荐

强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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