码迷,mamicode.com
首页 > 其他好文 > 详细

Largest Number || LeetCode

时间:2015-06-01 16:26:40      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000
int cmp(char *s1,char *s2){
    char temp1[100];
    char temp2[100];
    strcpy(temp1,s1);
    strcat(temp1,s2);
    strcpy(temp2,s2);
    strcat(temp2,s1);
    if(strcmp(temp1,temp2)<0)return 1;
    else return 0;
}
char* into_string(int n){
    char *p;
    p=(char*)malloc(50*sizeof(char));
        sprintf(p,"%d",n);
    return p;
}
char* largestNumber(int* nums, int numsSize) {
    char re[100][100];
    char temp[100];
    char *p;
    int  i,j;
    p=(char*)malloc(MAX*sizeof(char));
    for(i=0;i<numsSize;i++)strcpy(re[i],into_string(nums[i]));
    for(i=0;i<numsSize;i++){   //用的冒泡,不好意思@@ 虽然这是这题的核心算法,思想就是判断两个字串要不要交换位置的条件是,将这两个字串分别以两种方式拼接,再比较哪一                  //种拼接更优
        for(j=i+1;j<numsSize;j++)
        if(cmp(re[i],re[j])){
            strcpy(temp,re[i]);
            strcpy(re[i],re[j]);
            strcpy(re[j],temp);
       } 
    }
    for(i=0,p[0]=\0;i<numsSize;i++)
    strcat(p,re[i]);
    while(*p==0)p++;
    if(*p==\0)return "0";
    return p;
}

 

Largest Number || LeetCode

标签:

原文地址:http://www.cnblogs.com/ProtectedDream/p/4544095.html

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