【每日一题】两种排序方法
链接: link
1.根据字符串长度比较
先定义一个bool值用来判断是否满足递增
如果前一个字符串的长度大于当前字符串的长度,则不是根据字符串比较
if(v[i-1].size() > v[i].size())
{
lsort = false;
break;
}
2.根据字母表中的字母大小
与上面判断方法类似
先定义一个bool值用来判断是否满足递增
如果前一个字符的大小大于当前字符的大小,则不是根据字符大小比较
if(v[i-1] > v[i])
{
csort = false;
break;
}
3.最终代码
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
int n;
vector<string> v;
cin>>n;
v.resize(n);
for(auto& str : v)
{
cin>>str;
}
bool lsort = true,csort = true;
for(int i = 0;i < n;i++)
{
if(v[i-1].size() > v[i].size())
{
lsort = false;
break;
}
}
for(int i = 0;i < n;i++)
{
if(v[i-1] > v[i])
{
csort = false;
break;
}
}
if(lsort && csort)
{
cout<<"both"<<endl;
}
else if(lsort)
{
cout<<"lengths"<<endl;
}
else if(csort)
{
cout<<"lexicographically"<<endl;
}
else
{
cout<<"none"<<endl;
}
return 0;
}
这道题主要考察vector< string>的使用。