图片整理

思路

这道题说白了就是:给你一个由大小写字母和数字组成的字符串,按 ASCII 码值从小到大排序输出。

ASCII 码的大小顺序是:数字 0-9 < 大写字母 A-Z < 小写字母 a-z,所以排序后数字排最前面,然后是大写字母,最后是小写字母。

直接调用语言内置的排序函数就行了,因为默认就是按字符的 ASCII 码值排序的。没什么弯弯绕绕,属于排序的入门练手题。

代码

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
    string s;
    getline(cin, s);
    sort(s.begin(), s.end());
    cout << s << endl;
    return 0;
}
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char[] arr = s.toCharArray();
        Arrays.sort(arr);
        System.out.println(new String(arr));
    }
}
s = input()
print(''.join(sorted(s)))
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
rl.on('line', (line) => {
    console.log(line.split('').sort().join(''));
    rl.close();
});

复杂度分析

  • 时间复杂度: ,其中 是字符串长度。排序的时间复杂度。
  • 空间复杂度: ,排序过程中需要额外空间。