乍一看感觉很简单,写的时候各种报错,仔细理解题目才发现,题目真的太细节了!!
按字典序排序:不是每输入一次,比较与前一次输入的大小,最后组成的字符串。而是一组数据输入完后,使得组成的字符串最小!!
因为贪心还没遇到过,所以参考了一下别人的代码:
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
bool cmp(string a, string b) {
string t1 = a + b, t2 = b + a;
if (t1 < t2) return true;
else return false;
return true;
}
int main()
{
int num1;
int num2;
cin >> num1;
while (num1--)
{
cin >> num2;
string s[700];
for (int j = 0; j < num2; j++)
{
cin >> s[j];
}
sort(s, s + num2, cmp);
string c;
for (int i = 0; i < num2; i++) c += s[i];
cout <<c << endl;
}
return 0;
}
总结:看题目要仔细!
1. 字符数组 的初始化,以及字符数组的排序!
2. 自定义排序顺序!
3. 字符数组 存储再 向量容器里<vector>