首页 > 代码库 > 【sicily系列】 1198 substring
【sicily系列】 1198 substring
Dr lee cuts a string S into N pieces,s[1],…,s[N].
Now, Dr lee gives you these N sub-strings: s[1],…s[N]. There might be several possibilities that the string S could be. For example, if Dr. lee gives you three sub-strings {“a”,“ab”,”ac”}, the string S could be “aabac”,”aacab”,”abaac”,…
Your task is to output the lexicographically smallest S.
The first line of the input is a positive integer T. T is the number of the test cases followed.
The first line of each test case is a positive integer N (1 <=N<= 8 ) which represents the number of sub-strings. After that, N lines followed. The i-th line is the i-th sub-string s[i]. Assume that the length of each sub-string is positive and less than 100.
The output of each test is the lexicographically smallest S. No redundant spaces are needed.
13aabac
aabac
水题,做一个比较就可以了。比较A+B和B+A
1 #include<iostream> 2 #include<string> 3 #include<vector> 4 #include<algorithm> 5 using namespace std; 6 bool cmp (string a, string b) { 7 return a + b > b + a; 8 } 9 int main() {10 int t;11 cin >> t;12 while (t--) {13 int n;14 string a;15 vector<string> q;16 cin >> n;17 while (n--) {18 cin >> a;19 q.push_back(a);20 }21 sort(q.begin(), q.end(), cmp);22 while (!q.empty()) {23 cout << q.back();24 q.pop_back();25 }26 cout << endl;27 }28 return 0;29 }
【sicily系列】 1198 substring