zoukankan      html  css  js  c++  java
  • 用sort给字符串排序应用。。。洛谷p1012 拼数

    按照字典序排序:
    c++版:
    string s[21]; 
    for(int i=0;i <20;i++) cin>>s[i]; 
    sort(s,s+20);不用写cmp函数,string 类提供了operator。但这只是按照字典序排序的,按长度排序如下:
    按长度排序:
    c++版:
    #include<iostream>
    #include<cstring>
    #include <algorithm>
    using namespace std;
    bool cmp(string a,string b)
    {
        return a.length()<b.length();
    }
    int main()
    {
        int i,n;
        string s[25];
        while(cin>>n,n)
        {
            for(i=0;i<n;i++)
            cin>>s[i];
            sort(s,s+n,cmp);
            for(i=0;i<n;i++)
            cout<<s[i]<<endl;
         }
        return 0;
    }

    c语言版:
    int compare(const void*elem1,const void *elem2)
    {return(strcmp((char*)elem1,(char*)elem2));}
    qsort(str,size,len,compare);//str为char类型二维数组如str[1000][9], 那么,size是字符串的数目(1000), len是字符串的最长长度(9)

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    #include<algorithm>
    #include<string.h>
    #include<map>
    using namespace std;
    string a[22],maxn;
    int n;
    int comp(string x,string y)
    {
        string n1=x+y;
        string n2=y+x;
        int i,j;
        for(i=0;i<=n1.length();i++)
        {
            if(n1[i]<n2[i]) return 0;
            if(n1[i]>n2[i]) return 1;
        }
        return 1;
    }
    int main()
    {
        int i,j;
        cin>>n;
        for(i=1;i<=n;i++)
        {
           cin>>a[i];    
        }
        sort(a+1,a+n+1,comp);
        for(i=1;i<=n;i++)
        {
          cout<<a[i];    
        }
        cout<<endl;
        return 0;
    }
  • 相关阅读:
    停止与暂停线程
    flume日志收集框架
    mysql数据库索引
    junit
    freemarker
    python脚本
    java多线程编程核心技术学习-1
    spring 网站
    [MongoDB]学习笔记--Linux 安装和运行MongoDB
    [Spring MVC]学习笔记--form表单标签的使用
  • 原文地址:https://www.cnblogs.com/voldemorte/p/7633003.html
Copyright © 2011-2022 走看看