还是贪心算法应用;建立string的数组,输入之后,两两进行比较,a+b>b+a,则两两交换位置,将每个string放到合适的位置,从而使得局部最优,变为整体最优;
这里示例代码使用的是sort函数,个人不太清楚这个机制,但是总的来说,这个题目的string排序和相邻元素相互比较从而交换的方式相同;
具体代码如下所示:
#include#include #include #include #include using namespace std;const int maxn=10010;string str[maxn];bool cmp(string a,string b){ return a+b >n; for(int i=0;i >str[i]; } sort(str,str+n,cmp); string ans; for(int i=0;i