字典序排序
字典序就是把所给数字或字母按照从小到大的顺序排列起来,
比如1 2 3 4 5这 5 个数字的排列 1 2 3 4 5排最前面,而5 4 3 2 1排最后面,
如果在比较过程中,字母或数字的数量不相等,短的排前面,比如 hap和happy,hap小于happy;
即从第一位开始比较,小的排前面;
例题 codeforces#455 A
题意是找前缀中字典序最小的,一共从两个单词中选前缀,每个单词至少选一个字母;
思路:用vector排序可直接得到字典序最小的
代码
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using nmaespace std;
int main()
{
string a,b;
vector<string> v;
cin>>a>>b;
int m,n;
m=a.length();
n=b.length();
for(int i=1;i<=m;i++){//因为i,j都代表结束位置,所以从1开始,到m,n结束;
for(int j=1;j<=n;j++){
string t=a.substr(0,i)+substr(0,j);//substr(a,b)可以复制子字符串,a为原字符串起始位置,b为结束位置;
v.push_back(t);
}
}
sort(v.begin(),v.end());
cout<<v[0]<<endl;
return 0;
}