题目:两种排序方法
【解题思路】:
思路很简单,将接受的字符串都放到vector容器中,利用string的operator>=运算符重载来按ASCII比较字符串,利用string的size来比较字符串的长度.
//根据字典排序即根据阿斯克吗值排序
#include <iostream>
#include <string>
#include <vector>
using namespace std;
//长度排序
bool LenSort(vector<string>& v1)
{
for(int i=1;i<v1.size();++i)
{
if(v1[i-1].size()>=v1[i].size())
{
return false;
}
}
return true;
}
//字典排序
bool LexSort(vector<string>& v2)
{
for(int i=1;i<v2.size();++i)
{
if(v2[i-1]>=v2[i])
{
return false;
}
}
return true;
}
int main()
{
vector<string> v;
int n = 0;
cin>>n;
v.resize(n);//调整容器为n个字符对象
for(auto &e :v)
cin>>e;
if(LenSort(v)&&LexSort(v))
cout<<"both"<<endl;
else if(!LenSort(v)&&LexSort(v))
cout<<"lexicographically"<<endl;
else if(LenSort(v)&&!LexSort(v))
cout<<"lengths"<<endl;
else
cout<<"none"<<endl;
return 0;
}