[Xâu Ký Tự Cơ Bản]. Bài 18. Sắp xếp từ theo chiều dài

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho xâu kí tự S gồm các từ được phân cách nhau bởi một vài dấu cách.

Thực hiện sắp xếp các từ trong xâu theo thứ tự chiều dài tăng dần, nếu 2 từ có cùng chiều dài thì từ nào có thứ tự từ điển nhỏ hơn sẽ được xếp trước.


Đầu vào

Dòng duy nhất chứa xâu S


Giới hạn

1<=len(S)<=10000

S chứa kí tự là chữ cái, chữ số và dấu cách.


Đầu ra

In ra các từ sau khi sắp xếp


Ví dụ :

Input 01
28tech dev c
Output 01
c dev 28tech

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    bennie15025_meow  đã bình luận lúc 30, Tháng 12, 2025, 14:36

    Ez game: https://onecompiler.com/cpp/4494zm5g8


  • 1
    quanphan475  đã bình luận lúc 13, Tháng 9, 2025, 12:48

    include <bits/stdc++.h>

    using namespace std;
    bool cmp(string x, string y){
        if(x.size() != y.size()){
            return x.size() < y.size();
        }
        return x < y;
    }
    int main(){
        vector<string> v;
        string s;
        while(cin >> s){
            v.push_back(s);
        }
        sort(v.begin(), v.end(), cmp);
        for(string x : v){
            cout << x << " ";
        }
        return 0;
    }
    

  • -4
    Kaybe  đã bình luận lúc 4, Tháng 4, 2025, 14:23

    include <stdio.h>

    include <math.h>

    include <string.h>

    include <ctype.h>

    include <stdlib.h>

    define ll long long

    int cmp(const void *a, const void *b){ char *x = (char *)a; char *y = (char *)b; if(strlen(x) != strlen(y)){ return strlen(x) - strlen(y); } else{ return strcmp(x, y); } } int main(){ char c[10005]; fgets(c, 10005, stdin); c[strlen(c) -1] = '\0'; char a[1000][100]; int n = 0; char *token = strtok(c, " "); while(token != NULL){ strcpy(a[n], token); ++n; token = strtok(NULL, " "); } qsort(a, n, sizeof(a[0]), cmp); for(int i = 0; i < n; i++){ printf("%s ", a[i]); } }