题解 | 最长&最短文本
最长&最短文本
https://www.nowcoder.com/practice/3331d16fe07d4358858178ff5fa73e0d
#include <iostream> #include<vector> #include<algorithm> using namespace std; bool cmp(string s1, string s2) { return s1.length() < s2.length(); } int main() { string s; vector<string>v; vector<string>v1; int minl = 1000, maxl = 1; while (getline(cin,s)) { // 注意 while 处理多个 case v.push_back(s); v1.push_back(s); } stable_sort(v.begin(), v.end(), cmp); int i = 0, j = v.size() - 1; while (i < v.size()) { if (i < v.size() - 1 && v[i].length() == v[i + 1].length())i++; else break; } while (j >= 0) { if (j > 0 && v[j].length() == v[j - 1].length())j--; else break; } if (i == v.size() - 1 || j == 0) { for (int i = 0; i < v.size(); i++)cout << v1[i] << endl; } else { int tmpi=0; while (tmpi<=i)cout << v[tmpi++] << endl; while (j < v.size())cout << v[j++] << endl; } } // 64 位输出请用 printf("%lld")