题解 | #字符串排序#

字符串排序

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

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;

string my_string_sort(string s){
    vector<char> my_vec;
    int n = s.length();
    // 按顺序把字符填进去aAAabBbb这种的,时间复杂度为26 * n
    // 这样就满足规则1和规则2
    for(int i = 0; i < 26; i++){
        for(int j = 0; j < n; j++){
            if(s[j] - 'A' == i || s[j] - 'a' == i){
                my_vec.push_back(s[j]);
            }
        }
    }
	
    // 按照位置一个一个填进去。
    for(int i = 0, k = 0; i < n && k < my_vec.size(); i++, k++){
        while((s[i] < 'a' || s[i] > 'z') && (s[i] < 'A' || s[i] > 'Z' )){
            i++;// 如果遇到非a-z A-Z的字符就+1直到遇到可以填字符的位置,然后填字符就行
        }
        s[i] = my_vec[k];
    }

    return s;
}

int main() {
    string s;
    getline(cin, s);
    s = my_string_sort(s);
    cout << s;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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