题解 | #查找兄弟单词#

查找兄弟单词

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

package main

import (
	"fmt"
    "sort"
)

func isBrotherWord(s string, target string) bool {
    if s == target {
        return false
    }
    if len(s) != len(target) {
        return false
    }

    arr := make([]int, 128)
    for i:=0; i<len(target); i++ {
        arr[target[i]]++
    }

    for i:=0; i<len(s); i++ {
        arr[s[i]]--
    }

    for i:=0; i<len(arr); i++ {
        if arr[i] != 0 {
            return false
        }
    }

    return true
}


func findBrotherWords(words []string, target string) []string {
    var broWords []string
    for _, word := range words {
        if isBrotherWord(word, target) {
            broWords = append(broWords, word)
        }
    }

    return broWords
}

func main() {
    var m int

    fmt.Scan(&m)

    var words []string
    for i:=0; i<m; i++ {
        var word string
        fmt.Scan(&word)
        words = append(words, word)
    }

    var target string
    fmt.Scan(&target)

    var k int
    fmt.Scan(&k)
    
    broWords := findBrotherWords(words, target)
    sort.Strings(broWords)

    fmt.Println(len(broWords))

    if len(broWords) > k {
        fmt.Println(broWords[k-1])
    }
}
// 本题输入为一行,包括数字和字符串,用空格分开,所以采用 fmt.Scan(&word)

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-19 15:21
已编辑
华南农业大学 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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