题解 | #查找兄弟单词#
查找兄弟单词
http://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
//先用tp存储所有待匹配的字符串,然后依次提取并排序,与目标字符串进行匹配,需要满足:(1)与目标字符串不相等。(2)与排序后的目标字符串相等。如果个字符串相等,则存储到ans中。遍历完之后进行查找
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int n;
cin >> n;
vector<string> tp(n);
string str;
for(int i = 0 ; i < n; i ++ ){
cin >> str;
tp[i] = str;
}
cin >> str;
string str2 = str;
sort(str.begin(), str.end());
vector<string> tp2 = tp;
int count = 0;
vector<string> ans;
for(int i = 0; i < n ; i ++ ){
if(tp2[i] != str2){
sort(tp2[i].begin(), tp2[i].end());
if(tp2[i] == str){
ans.emplace_back(tp[i]);
count ++;
}
}
}
sort(ans.begin(), ans.end());
int j;
cin >> j;
cout<< count <<endl;
if(j < count){
cout<< ans[j-1];
}
return 0;
}