zoukankan      html  css  js  c++  java
  • 后缀子串排序

    转自:https://www.cnblogs.com/liangrx06/p/5083933.html

    题目描述

    对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain

    输入描述:

    每个案例为一行字符串。

    输出描述:

    将子串排序输出
    示例1

    输入

    复制
    grain
    

    输出

    复制
    ain
    grain
    in
    n
    rain
    #include <stdio.h>  
    #include <string.h>  
    #include <stdlib.h>  
       
    #define N 1000  
       
    int cmp(const void *a, const void *b)  
    {  
        return strcmp((char *)a, (char *)b);  
    }  
       
    int main(void)  
    {  
        int i, j, k, n;  
        char s[N][N];  
       
        while (scanf("%s", s[0]) != EOF)  
        {  
            n = strlen(s[0]);  
            for(i=1; s[0][i]; i++)  
            {  
                k = 0;  
                for(j=i; s[0][j]; j++)  
                    s[i][k++] = s[0][j];  
                s[i][k] = '\0';  
            }  
            qsort(s, n, sizeof(s[0]), cmp);  
            for(i=0; i<n; i++)  
                printf("%s\n", s[i]);  
        }  
       
        return 0;  
    }  

    //难点在于排序,没想到一个qsort就搞定了。头文件stdlib.h。

    它的参数为: 1 待排序数组首地址
    2 数组中待排序元素数量(改题目中也就是字符串的长度)
    3 各元素的占用空间大小
    4 指向函数的指针,用于确定排序的顺序(排序规则,从大到小还是从小到大)

  • 相关阅读:
    mysql中文乱码的一点理解
    Linux 运行进程实时监控pidstat命令
    深入理解“系统平均负载”
    进程和线程的区别
    vmstat命令
    grep命令
    top命令
    Shell脚本获取本机ip
    CentOS7防火墙(firewall)配置
    大数据测试
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/9230886.html
Copyright © 2011-2022 走看看