本题类似于力扣242 有效的字母异位词,可以借助哈希表来解决。但是一个比较简单的方法是比较两个排序后的字符串是否相等。
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var inputs=[];
rl.on('line',function(line){
inputs = line.split(' ');
}).on('close',function(){
let n = inputs[0];
let candidate = inputs.slice(1,inputs.length-2);
let key = inputs[inputs.length-2];
let k =inputs[inputs.length-1];
let bro = searchBro(candidate,key);
bro.sort(); //将兄弟单词按字典序排列
console.log(bro.length);
if(bro[k-1]){
console.log(bro[k-1]);
}
})
//查找兄弟单词有哪些
function searchBro(arr,key){
let result = [];
for(let i = 0; i < arr.length; i++){
//排序后比较字符串是否相等
if((arr[i] !== key) && ([...arr[i]].sort().join('') === [...key].sort().join('')))
result.push(arr[i]);
}
return result;
}