题解 | 名字的漂亮度

package main

import (
	"fmt"
	"sort"
)

func main() {
	var n int
	_, _ = fmt.Scan(&n)

	for i := 0; i < n; i++ {
		input := ""
		_, _ = fmt.Scan(&input)

		countMap := map[byte]int{}

		for _, c := range []byte(input) {
			if _, ok := countMap[c]; !ok {
				countMap[c] = 0
			}

			countMap[c]++
		}

		// fmt.Printf("countMap: %#v\n", countMap)

		countSlice := []int{}
		for _, v := range countMap {
			countSlice = append(countSlice, v)
		}

		sort.Slice(countSlice, func(i2, j int) bool {
			return countSlice[i2] > countSlice[j]
		})

		// fmt.Printf("countSlice2: %#v\n", countSlice)

		r := 0
		for idx, c := range countSlice {
			r += (26 - idx) * c
		}

		fmt.Printf("%v\n", r)
	}
}

全部评论

相关推荐

02-25 21:07
中北大学 Python
初创团队 实习生 1500房补加每天450块钱
点赞 评论 收藏
分享
02-21 23:22
已编辑
重庆大学 Java
神哥不得了:神哥来啦~还是非常不错的。需要注意的是项目的话建议把编号换一下,把前面那个一和二删掉,然后再把123那种换成点,项目的话应该用这两个项目也问题不大,毕竟你的学历还是挺好的,如果换上两个高质量项目的话,获得面试的比例会大一点,不过这两个项目的话应该吃透,也可以找到面试,八股的话就建议先把高频top50的八股多巩固几遍,别看那些假高频题目就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务