题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <iostream> using namespace std; #include <vector> #include <string> #include <algorithm> bool isBrother(string a, string b) { if (a.size() != b.size()) { return false; } if (a == b) { return false; } sort(a.begin(), a.end()); sort(b.begin(), b.end()); if (a == b) { return true; } return false; } int main() { string str; int dicNum; int k; vector<string> dic; string letter; vector<string> dicB; cin >> dicNum; for (int i = 0; i < dicNum; i++) { cin >> str; dic.push_back(str); } cin >> letter; cin >> k; for (auto& it : dic) { if (isBrother(it, letter)) { dicB.push_back(it); } } sort(dicB.begin(), dicB.end()); cout << dicB.size() << endl; if (k - 1 < dicB.size()) { cout << dicB[k - 1] << endl; } }
注意一下输入的读取,输出的内容以及是否输出。
这题主要是巧用sort,既可以用来辅助判断是否为兄弟词,又可以用来给找出来的兄弟词按词典排序。
这个按词典排序也是个坑,我开始以为它的输入就叫词典排序的输入,但是其实是应该自己检查完后再排序
华为机试刷题记录 文章被收录于专栏
记录一下手打代码的解题思路方便复习