溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

兩種排序方法

發(fā)布時間:2020-09-09 00:21:28 來源:網(wǎng)絡 閱讀:138 作者:be_better_ 欄目:編程語言

題目描述:

考拉有n個字符串字符串,任意兩個字符串長度都是不同的??祭罱鼘W習到有兩種字符串的排序方法: 1.根據(jù)字符串的字典序排序。例如:
"car" < "carriage" < "cats" <
"doggies < "koala"
2.根據(jù)字符串的長度排序。例如:
"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問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI