题解 | #查找兄弟单词#

查找兄弟单词

https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

// 保存单词个数、x单词、x单词的兄弟单词中的第k个
let [n, words, word, num] = [0, [], '', 0]
rl.on('line', function (line) {
    // 分隔出各个字符串
    const arr = line.split(' ')
    // 获取单词个数,并转成数字
    const n = arr[0]*1
    // 截取出n个单词
    const words = arr.slice(1,n + 1) 
    // 截取出x单词
    const word = arr[arr.length - 2]
    // 截取出,k
    const k = arr[arr.length - 1] 
    
    // 遍历n个单词,找出兄弟单词放到一个新数组
    const res = []
    for(let i = 0; i < words.length; i++) {
        // 判断是不是兄弟单词,且不能和自身一样
        if(isBrotherWord(word, words[i])){
            res.push(words[i])
        }
    }

    // 按照字典排列后,分两行打印兄弟单词个数、第k个单词时
    res.sort()
    console.log(res.length)
    // 有符合的第k个才输出,不然不输出
    res[k-1] && console.log(res[k-1])
});

function isBrotherWord(word1:string, word2:string){
    // word1 !== word2 就是两个单词不能相等
    // w1 === w1 就代表word1与word2两个单词组成一样
    const w1 = word1.split('').sort().join()
    const w2 = word2.split('').sort().join()
    if(word1 !== word2 && w1 === w2){
        return true
    }
    return false
}

全部评论

相关推荐

代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务