两种排序方法
两种排序方法
/*
2022年09月20日 17:41:01
设置两个标记记录,当前序列排序方法情况
分别遍历去判断排序方法,如果同时遍历可能会互相影响
一旦判断不满足,要break出来,不需要再判断了。
*/
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<string> v(n);
for (int i = 0; i < n; ++i)
cin >> v[i];
bool strsort = true, lensort = true; // 标记排序情况 默认是满足的
for (int i = 1; i < n; ++i) { // 避免越界,i从1开始访问
if (v[i - 1] > v[i]) {
strsort = false;
break;
}
}
for (int i = 1; i < n; ++i) { // 避免越界,i从1开始访问
if (v[i - 1].size() > v[i].size()) {
lensort = false;
break;
}
}
if (strsort == true && lensort == false)
cout << "lexicographically" << endl;
else if (strsort == false && lensort == true)
cout << "lengths" << endl;
else if (strsort && lensort)
cout << "both" << endl;
else
cout << "none" << endl;
return 0;
}