top1编程
← 返回题目
题解

【入门】字符串中的空格移位

1 条题解

  • 0
    @ 2026-7-31 4:59:34

    解题思路

    把字符串中所有的空格移到最前面,其他字符保持原来的顺序。

    方法:

    1. 统计空格个数
    2. 先输出所有空格
    3. 再输出所有非空格字符

    参考代码

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
        string s;
        getline(cin, s);
    
        int cnt = 0;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == ' ') cnt++;
        }
    
        for (int i = 0; i < cnt; i++) cout << ' ';
        for (int i = 0; i < s.size(); i++) {
            if (s[i] != ' ') cout << s[i];
        }
        cout << endl;
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(N)
    • 空间复杂度:O(1)
    • 1