题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
bool compare(string s1,string s2) { //compare函数用来比较排序后得字符串是否一致,
sort(s1.begin(),s1.end()); //若排序后一致,则这两个单词可能为兄弟单词
sort(s2.begin(),s2.end());
if(s1==s2) return true;
else return false;
}
int main(){
int n;
while(cin>>n) {
vector<string> v,v1; //v:用来存放所有单词 v1:用来存放兄弟单词
for(int i=0;i<n;i++) { //输入单词表
string tmp;
cin>>tmp;
v.push_back(tmp);
}
string s;
cin>>s; //输入需要查找得单词
for(int i=0;i<v.size();i++) {
if(s!=v[i] && compare(s, v[i])==true) v1.push_back(v[i]); //当需查找的单词与单词表中不一致,
} //但排序后一致,则为兄弟单词
sort(v1.begin(),v1.end());
int k;
cin>>k;
cout<<v1.size()<<endl;
if(k<=v1.size()) cout<<v1[k-1]<<endl;
}
return 0;
}
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
bool compare(string s1,string s2) { //compare函数用来比较排序后得字符串是否一致,
sort(s1.begin(),s1.end()); //若排序后一致,则这两个单词可能为兄弟单词
sort(s2.begin(),s2.end());
if(s1==s2) return true;
else return false;
}
int main(){
int n;
while(cin>>n) {
vector<string> v,v1; //v:用来存放所有单词 v1:用来存放兄弟单词
for(int i=0;i<n;i++) { //输入单词表
string tmp;
cin>>tmp;
v.push_back(tmp);
}
string s;
cin>>s; //输入需要查找得单词
for(int i=0;i<v.size();i++) {
if(s!=v[i] && compare(s, v[i])==true) v1.push_back(v[i]); //当需查找的单词与单词表中不一致,
} //但排序后一致,则为兄弟单词
sort(v1.begin(),v1.end());
int k;
cin>>k;
cout<<v1.size()<<endl;
if(k<=v1.size()) cout<<v1[k-1]<<endl;
}
return 0;
}
OPPO公司福利 1051人发布