题解 | 字符串排序

#include <iostream>
#include <string>
#include <vector>
using namespace std;

bool toLowerChar(char src, char& dest) {
    if (src >= 'A' && src <= 'Z') {
        dest = src + 32;
    } else if (src >= 'a' && src <= 'z') {
        dest = src;
    } else {
        return false;
    }
    return true;
}

int main() {
    string s;
    getline(cin, s);
    char front, behind, tmp;
    for (int i = 0; i < s.length() - 1; i++) {
        int n = 1;
        for (int j = 0; j < s.length() - n - i;) {
            if (!toLowerChar(s[j], front)) {
                ++ j;
                continue;
            }
            if (!toLowerChar(s[j+n], behind)) {
                ++ n;
                continue;
            }
            if (front > behind) {
                tmp = s[j];
                s[j] = s[j+n];
                s[j+n] = tmp;
            }
            ++ j;
            n = 1;
        }
    }
    cout << s << endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-27 17:33
门头沟学院 Java
代码飞升:同学院本,你要注意hr当天有没有回复过,早上投,还要打招呼要推销自己,不要一个劲投
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务