题解 | #两种排序方法#

两种排序方法

https://www.nowcoder.com/practice/839f681bf36c486fbcc5fcb977ffe432

思路:定义两个标志位lexicographically、lengths记录是否满足这两种情况

只需保存两个字符串遍变量,一个prev_str字符串,一个当前cur_str字符串,判断是否满足这两个条件

1.当lengths 成立时才有必要判断字符串长度

2.当lexicographically成立时才有必要判断字典排序

3.当两个标志位都不成立,终止判断直接输出

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    string prev_str("");
    int prev_len = 0;
    bool lexicographically = true;
    bool lengths = true;
    for(int i = 1;i<=n && (lexicographically || lengths);i++)
    {
        string cur_string;
        cin >> cur_string;
        int cur_len = cur_string.size();
        if(lengths)
        {
            if(cur_len < prev_len)
            {
                lengths = false;
            }
        }
        if(lexicographically)
        {
            if(cur_string < prev_str)
            {
                lexicographically = false;
            }
        }
        prev_len = cur_len;
        prev_str = cur_string;
    }
    if(lengths && lexicographically)
    {
        cout << "both" << endl;
    }
    else if(lengths)
    {
        cout << "lengths" << endl;
    }
    else if(lexicographically)
    {
        cout << "lexicographically" << endl;
    }
    else
    {
        cout << "none" << endl;
    }
}

全部评论

相关推荐

哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务