仔细考虑下就会想到字符串排序的问题。但是要想到 9 和 90 组成时 990 > 909.所以在排序的时候特别注意
// File Name: UVa10905.cpp
// Author: Toy
// Created Time: 2013年04月15日 星期一 20时05分37秒
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <cctype>
#include <cmath>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <iomanip>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <utility>
#include <bitset>
#define L(x) x << 1
#define R(x) x << 1 | 1
using namespace std;
int Case;
bool cmp ( const string &a, const string &b ) {
return ( a + b > b + a );
}
int main ( ) {
while ( cin >> Case && Case ) {
string str[55];
for ( int i = 0; i < Case; ++i )
cin >> str[i];
sort ( str, str + Case, cmp );
for ( int i = 0; i < Case; ++i )
cout << str[i];
cout << endl;
}
return 0;
}
本文解析了UVa10905竞赛题中的字符串排序问题,针对特定情况(如9和90组成的990大于909)提供了排序算法实现,通过比较不同字符串组合的大小来确定最优排序方式。
218

被折叠的 条评论
为什么被折叠?



