码迷,mamicode.com
首页 > 编程语言 > 详细

把数组排成最小的数

时间:2017-05-16 23:24:17      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:return   比较   size   排序   logs   ring   numbers   tor   pre   

bool com( const string& a, const string& b )
{
    string A;
    A.append( a );
    A.append( b );
    string B;
    B.append( b );
    B.append( a );
    
    int i = 0;
    while( A[i] == B[i] )
    {
        i++;
    }

    return A[i] < B[i];
}

string PrintMinNumber(vector<int> numbers)
{
    string res = "";
    vector< string > snumbers;
    char num[ 10 ];
    string snum;
    for( int i = 0; i < numbers.size(); i++ )
    {
        sprintf( num, "%d", numbers[i] );
        snum = num; //snum.length()为实际字符长度
        snumbers.push_back( snum );
    }

    //默认用string的compare函数,字符串比较, "3" < "32" < "321",但与题不符
    //sort默认升序排序
    //sort( snumbers.begin(), snumbers.end() );

    sort( snumbers.begin(), snumbers.end(), com );

    for( int i = 0; i < snumbers.size(); i++ )
    {
        //cout << snumbers[i];
        res += snumbers[i];
    }
        //cout << endl;
    return res;
}

 

把数组排成最小的数

标签:return   比较   size   排序   logs   ring   numbers   tor   pre   

原文地址:http://www.cnblogs.com/wangzhiyi/p/6863836.html

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