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

    题目描述:

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

    然后对各子串按字典顺序排序,即: 
    ain,grain,in,n,rain

    输入:

    每个案例为一行字符串。

    输出:

    将子串排序输出

    样例输入:
    grain
    样例输出:
    ain
    grain
    in
    n
    rain

     Solution1:(qsort)

    #include<stdio.h>
    #include<algorithm>
    #include<string.h>
    #include<string>
    using namespace std;
     
    /*
     
    sort只能对string排序而不能对字符数组排序
     
    要用qsort
     
     
     
    */
     
     
     
    int cmp(const void  *a,const void  *b) {
     
        //return strcmp((const char *)a,(const char *)b);
        return strcmp((char *)a ,(char *)b);
    }
     
     
    int main() {
     
        char a[1000][1000];
     
        while(scanf("%s",a[0])!=EOF) {
         
            int len = strlen(a[0]);
     
            for(int i = 0;i < len-1;i++) {
             
                int k = 0;
                for(int j = i+1;j < len;j++) {
                 
                    a[i+1][k++] = a[0][j];
                }
                a[i+1][k] = ''; //必须添加
            }
     
             
     
            qsort(a,len,sizeof(a[0]),cmp);
     
            for(int i = 0;i < len;i++)
                printf("%s
    ",a[i]);
     
     
        }
     
     
     
    }

    Solution2:(set)

    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<vector>
    using namespace std;
    
    vector<string> v;
    
    int main(){
        string str;
        while(cin>>str){
            v.clear();
            for(int i=0;i<str.size();i++){
                string temp=str.substr(i,str.size()-i);
                v.push_back(temp);
            }
            sort(v.begin(),v.end());
            for(int i=0;i<str.length();i++){
                cout<<v[i]<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    开源的Linux QQ
    如何从VS2003升级到VS2008
    LINQ在开发中的地位?
    SQL Server 2005 Analysis Services
    .NET framework源代码开放了
    WebForms和MVC这2个模型都很棒,由相关讨论想到的
    IIS 7.0相关文章收集
    探究基于声明的身份标识
    微软为“离线”做好准备:推出同步框架
    通用日志
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9736498.html
Copyright © 2011-2022 走看看