主要算法
题目列表
P1603 斯诺登的密码 | STL,hashmap, sort |
P1071 潜伏者 | STL, hashmap, string |
P1012 拼数 | STL, string, vector |
P1538 迎春舞会之数字舞蹈 | STL, string, vector |
题解
P1012 拼数
注意判断函数的写法:
表示如果字符串“ab”排法比“ba”大,即a排在b前面
排除了a:321 b: 32 如果直接a > b判断,321 > 32,32132 > 32321的错误情况
#include<bits/stdc++.h>
using namespace std;
bool cmp(string a, string b)
{
return a+b > b+a; //避免32132大于32321的情况
}
int main()
{
int n;
scanf("%d",&n);
vector<string> vc;
string str;
for(int i = 0; i < n; i++)
{
cin >> str;
vc.push_back(str);
}
sort(vc.begin(),vc.end(),cmp);
for(int i = 0; i < n; i++)
{
cout << vc[i];
}
return 0;
}