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.
Hãy tách ra các từ thuận nghịch trong xâu và sắp xếp theo thứ tự từ điển tăng dần.
Đầ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ừ thuận nghịch sau khi sắp xếp
Ví dụ :
Input 01
IAzbbzAI ocoS iIA ccAAAAAAcc izzbb aoI iIiAWWAiIi
Output 01
IAzbbzAI ccAAAAAAcc iIiAWWAiIi
Bình luận
include <stdio.h>
include <string.h>
include <ctype.h>
include <math.h>
include <stdlib.h>
int cmp(const void *a, const void *b){ char *x = (char *)a; char *y = (char *)b; return strcmp(x, y); } int tn(char c[]){ int l = 0, r = strlen(c) - 1; while(l <= r){ if(c[l] != c[r]){ return 0; } ++l, --r; } return 1; } 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++){ if(tn(a[i])){ printf("%s ", a[i]); } } }