码迷,mamicode.com
首页 > 编程语言 > 详细

反转后的字符串排序

时间:2018-04-02 23:56:31      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:长度   描述   amp   stl   tail   strcmp   0ms   AC   字符   

 

                                                          反转后的字符串排序

                                      发布时间: 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

 

 

反转后的字符串排序

标签:长度   描述   amp   stl   tail   strcmp   0ms   AC   字符   

原文地址:https://www.cnblogs.com/00isok/p/8698391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!