题解 | 数据分类处理

数据分类处理

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

package main

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

func main() {
	var nR, nI int
	var sR, sI []string
	var t string
	fmt.Scan(&nR)
	for i := 0; i < nR; i++ {
		fmt.Scan(&t)
		sR = append(sR, t)
	}
	fmt.Scan(&nI)
	for i := 0; i < nI; i++ {
		fmt.Scan(&t)
		sI = append(sI, t)
	}
	sI = format(sI)

	rI := []string{}
	for _, r := range sI {
		t := []string{}
		count := 0
		for i, v := range sR {
			if strings.Contains(v, r) {
				t = append(t, strconv.FormatInt(int64(i), 10))
				t = append(t, v)
				count++
			}
		}
		if count != 0 {
			rI = append(rI, r)
			rI = append(rI, strconv.FormatInt(int64(count), 10))
			rI = append(rI, t...)
		}
	}
	fmt.Printf("%d ", len(rI))
	for _, v := range rI {
		fmt.Printf("%s ", v)
	}
}

func format(s []string) []string {
	res := []string{}
	cache := make(map[string]int, len(s))
	for i := range s {
		cache[s[i]] += 1
	}
	for k, _ := range cache {
		res = append(res, k)
	}
	sort.Slice(res, func(i, j int) bool {
		ti, _ := strconv.Atoi(res[i])
		tj, _ := strconv.Atoi(res[j])
		return ti < tj
	})
	return res
}

全部评论

相关推荐

nus22016021404:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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