首页 > 代码库 > 把数组排成最小的数
把数组排成最小的数
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; }
把数组排成最小的数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。