题目描述:
考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:
"car" < "carriage" < "cats" <
"doggies < "koala"
2.根据字符串的长度排序。例如:
"car" < "cats" < "koala" <
"doggies" < "carriage"
考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。
#include<iostream>
using namespace std;
#include<string>
#include<string.h>
#include<vector>
int main()
{
int i = 0;
int n = 0;
string s;
vector<string> v;
//与要求不同的话就把值赋为0
int flag1 = 1;//字典排序
int flag2 = 1;//长度排序
while (cin >> n){
v.reserve(2*n);
for (i = 0; i<n; i++){
cin >> s;
v.push_back(s);
}
for (i = 0; i<n-1; i++){
//这里利用vector中的compare接口,如果返回值大于0说明前面的大
if (v[i].compare(v[i + 1]) >0){
flag1 = 0;
break;
}
}
for (i = 0; i < n - 1; ++i){
if (v[i].size()>v[i + 1].size()){
flag2 = 0;
break;
}
}
if (flag1 == 1 && flag2 == 0){
cout << "lexicographically" << endl;
}
else if (flag1 == 1 && flag2 == 1){
cout << "both" << endl;
}
else if (flag1 == 0 && flag2 == 1){
cout << "lengths" << endl;
}
else if (flag1 == 0 && flag2 == 0)
{
cout << "none" << endl;
}
s.clear();
}
return 0;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。