题解 | 数据分类处理

数据分类处理

https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd

package main

import (
	"fmt"
	"sort"
	"strconv"
	"strings"
)

func getInput() (iCount, rCount int, iData, rData []int) {
    fmt.Scan(&iCount)
    iData = make([]int, iCount)
    for i := 0; i < iCount; i++ {
        fmt.Scan(&iData[i])
    }
    fmt.Scan(&rCount)
    rData = make([]int, 0)
    rMap := make(map[int]int)
    var rTemp int
    for i := 0; i < rCount; i++ {
        fmt.Scan(&rTemp)
        if _, exist := rMap[rTemp]; !exist {
            rMap[rTemp] = rTemp
            rData = append(rData, rTemp)
        }
    }
    sort.Ints(rData)
    return
}

func main() {
    _, _, iData, rData := getInput()
    total := 0
    rString := ""
    for _, rv := range rData { // 0 3 6
        number := 0
        tempString := ""
        for ik, iv := range iData { // 123 456
            rvString, ivString := strconv.Itoa(rv), strconv.Itoa(iv)
            if strings.Contains(ivString, rvString) {
                tempString += " " + strconv.Itoa(ik) + " " + ivString
                total+=2
                number++
            }
        }
        if number > 0 {
            total+=2
            rString += " " + strconv.Itoa(rv) + " " + strconv.Itoa(number) + tempString
        }
    }

    fmt.Printf("%d", total)
    fmt.Printf(rString)
    // fmt.Println(iCount, rCount, iData, rData)
}

全部评论

相关推荐

要AC不要WA:投一天,喜提两笔试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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