题解 | #名字的漂亮度#

名字的漂亮度

https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3

//计算每个字母出现的次数 将这些次数按照从大到小的顺序排序
//然后从26开始递减赋给漂亮度,出现次数最多的赋给漂亮度26
//采用map数据结构,key为字母,value为出现次数
package main 

import (
     "fmt"
    "sort"
)
   


//漂亮度计算方法
func LofP(s string) int {
    //定义一个map,计算所有字母出现的个数
    m := make(map[string]int)
    for i:=0; i<len(s); i++ {
        temp := s[i:i+1]
        _, ok := m[temp]
        if ok {
            m[temp] = m[temp]+1
        }else {
            m[temp] = 1
        }
    }
    //fmt.Print(m)
    //定义一个数组,存储所有字母出现的次数,并排序从大到小
    countArray := make([]int, len(m))
    for _, val := range m {
        countArray = append(countArray, val)
    }
    //对数据进行排序 sort库实现就好了
    sort.Ints(countArray)
    //fmt.Print(countArray)
    //计算漂亮值
    lp := 26
    LP := 0
    for j:=len(countArray)-1; j>=0; j-- {
        LP = LP + countArray[j]*lp
        lp = lp-1
    }
    
    return LP
}

func main() {
    var n int
    fmt.Scan(&n)
    
    input := make([]string, n)
    for i:=0; i<n; i++ {
        var temp string
        fmt.Scan(&temp)
        input[i] = temp
    }
    
    //fmt.Print(len(input))
    
    for i:=0; i<n; i++ {
        result := LofP(input[i])
        fmt.Println(result)
    }
    
}

全部评论

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务