反轉後的字符串排序
阿新 • • 發佈:2018-04-03
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
反轉後的字符串排序