1. 程式人生 > >反轉後的字符串排序

反轉後的字符串排序

turn ring 輸入 tdi clas rcm body 字母 tex

反轉後的字符串排序

發布時間: 2018年3月20日 21:35 最後更新: 2018年3月21日 00:33 時間限制: 1000ms 內存限制: 128M

輸入n個字符串,對這n個字符串(按反轉後字典序)排序並輸出。例如兩個字符串為“aab”, “cba”,則“cba”應該排在“aab”之前,因為“cba”反轉後為“abc”,”aab”反轉後為”baa”。

第一行為一個整數n,表示字符串的數目。(0<n<50)
接下來是n行,每行一個字符串,其中字符串僅由小寫字母組成,每個字符串長度不超過100,所有字符串均不相同。

排完序以後的字符串,每個字符串占一行。

6
cpp
class
object
stl
acm
bjfu
stl
acm
cpp
class
object
bjfu

字典序:對於字符串,先按首字符排序,如果首字符相同,再按第二個字符排序,以此類推。如aa,ab,ba就是一個字典序。

#include<cstdio>
#include<cstring>
int main()
{
    int n;
    scanf("%d", &n);
    int i, j;
    char s[55][110
], pos[110]; for (i = 0; i<n; i++) { int k = 0; scanf("%s", pos); for (j = strlen(pos) - 1; j >= 0; j--) s[i][k++] = pos[j]; s[i][k] = \0; } for (i = 0; i<n - 1; i++) for (j = i + 1; j<n; j++) if (strcmp(s[i], s[j])>0
) { strcpy(pos, s[i]); strcpy(s[i], s[j]); strcpy(s[j], pos); } for (i = 0; i<n; i++) { for (j = strlen(s[i]) - 1; j >= 0; j--) printf("%c", s[i][j]); printf("\n"); } return 0; }

2018-04-02

反轉後的字符串排序