温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

两种排序方法

发布时间:2020-09-09 00:21:28 来源:网络 阅读:126 作者:be_better_ 栏目:编程语言

题目描述:

考拉有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;
}
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI