题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

bool comp (const string a, const string b) {
    int m = a.size();
    int n = b.size();
    int minlen = min(m,n);
    for (int i = 0; i < minlen; i++) {
        if (a[i] == b[i])
            continue;
        return a[i] < b[i];
    }
    if (m < n)
        return true;
    else 
        return false;
}

int main() {
    int n;
    while (cin >> n) { // 注意 while 处理多个 case
        vector<string> vs(n);

        for (int i = 0; i < n; i++)  
            cin >> vs[i];

        sort(vs.begin(), vs.end(), comp);

        for (auto tmp : vs) 
            cout << tmp << endl;

    }
}

本来用的geline(cin, vs[i])来输入字符串,但最后一行的字符串实际上没有被vs存下来

换成cin>>vs[i]后正常了

百度了一下cin和getline的区别:

cin:会忽略空白字符,空白符号和'\n'会停止cin的输入

getline:不会忽略空白字符,直到遇到'\n'或EOF停止输入

getline之所以出错,因为输入的最后一行末尾不是'\n',也不是EOF

所以在考试遇到字符串输入,需要留意字符串中是否有空格,有空格则用getline,否则用cin就可以了

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
5376次浏览 53人参与
# 百度工作体验 #
316370次浏览 2232人参与
# 米连集团26产品管培生项目 #
7730次浏览 235人参与
# 沪漂/北漂你觉得哪个更苦? #
1877次浏览 45人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16954次浏览 137人参与
# 春招至今,你的战绩如何? #
16914次浏览 153人参与
# MiniMax求职进展汇总 #
25507次浏览 323人参与
# 你的实习产出是真实的还是包装的? #
3588次浏览 59人参与
# HR最不可信的一句话是__ #
1221次浏览 34人参与
# AI面会问哪些问题? #
1107次浏览 30人参与
# 你做过最难的笔试是哪家公司 #
1447次浏览 24人参与
# AI时代,哪个岗位还有“活路” #
3149次浏览 55人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
153003次浏览 889人参与
# 简历第一个项目做什么 #
32269次浏览 370人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
8078次浏览 44人参与
# 简历中的项目经历要怎么写? #
311361次浏览 4286人参与
# XX请雇我工作 #
51168次浏览 171人参与
# 投格力的你,拿到offer了吗? #
178458次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
77047次浏览 375人参与
# AI时代,哪些岗位最容易被淘汰 #
65091次浏览 921人参与
# 秋招白月光 #
731753次浏览 5441人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187716次浏览 1123人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务