[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:
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
Ez game: https://onecompiler.com/cpp/4494zm5g8
include <bits/stdc++.h>
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]); } }