• 字符串的比较


    相关知识: strcmp(s1,s2)比较2个字符串的大小;

                      strcpy   (s1,s2)    将s2复制给s1;

                      strncmp(s1,s2,开始,结束)比较这个长度下的字符串。

                      char   s[N][N]  scanf("%s",s[i])   s[i][j] 表示第 i 个字符串的 第j个元素;

      应用 :

       本题          贪心+此知识 

     给出N个正整数,连接生成一个“大”的整数,求这个生成的大整数的最大值。

    例如,给出4个整数:123, 124, 56, 90,可以连接生成的大整数有:1231245690, 1241235690, 5612312490, 9012312456, 9056124123等等,对本例,总共可以生成24个大整数。而其实最大整数是:9056124123

    输入

    第1行:1 个整数N(1<=N<=50)

    第2行:N个整数,每个整数不超过INT_MAX

    输出

    第1行:生成的最大整数

    样例输入 Copy

    4
    123 124 56 90
    

    样例输出 Copy

    9056124123

      

    #include <bits/stdc++.h>
    using namespace std;
    const int N= 100005;
    #define ri register int 
    int n;
    char a[50][50],p[20],q[20],t[20];
    int main(){
        scanf("%d",&n);
        for(ri i=0;i<n;i++)
        {
            scanf("%s",a[i]);
        }
        for(ri i=0;i<n;i++)
        for(ri j=i+1;j<n;j++)
        {
            int len1=strlen(a[i]),len2=strlen(a[j]);
            strcpy(q,a[i]);
            for(ri k=0;k<len2;k++)
            q[k+len1]=a[j][k];
            strcpy(p,a[j]);
            for(ri k=0;k<len1;k++)
            p[k+len2]=a[i][k];
            if(strcmp(q,p)<0)
            {
                strcpy(t,a[i]);
                strcpy(a[i],a[j]);
                strcpy(a[j],t);
            }
        }
        for(ri i=0;i<n;i++) printf("%s",a[i]);
    }
    View Code
  • 相关阅读:
    eclipse下切换svn用户
    Netty实现服务端客户端长连接通讯及心跳检测
    Spring Batch系列总括(转载)
    SQL中的Null深入研究分析
    MySQL报错“1366
    Memcache学习php完整一例
    Memcache学习笔记
    递归和迭代区别
    解决textarea 输出有空格问题
    解决mysql安装出现error Nr.1045问题
  • 原文地址:https://www.cnblogs.com/Lamboofhome/p/11748790.html
Copyright © 2020-2023  润新知