10905

这道题其实说白了就是处理sort的cmp函数,其实就是比较两个连起来的话哪个放前面会更大一些,

思路只要想通就很好实现了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;

int n;
string s[100];

bool cmp(string a, string b)
{
    string c, d;
    c = a+b;
    d = b+a;
    return c.compare(d)>0;
}

int main()
{

    //freopen("a.txt", "r", stdin);
    while(scanf("%d", &n)&&n)
    {
        for(int i = 0;i < n;i++)
        {
            cin>>s[i];
        }
        sort(s, s+n, cmp);
        for(int i = 0;i < n;i++)
        {
            cout << s[i];
        }
        cout << endl;
    }
    return 0;
}

posted @ 2011-05-13 01:06  KOKO's  阅读(195)  评论(0编辑  收藏  举报