[牛客网]字符串价值

来源:互联网 发布:怎么样打造淘宝爆款. 编辑:程序博客网 时间:2024/05/17 06:05

[编程题]字符串价值

热度指数:7时间限制:1秒空间限制:32768K

有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值
例如: 字符串”abacaba”,里面包括4个’a’,2个’b’,1个’c’,于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21
牛牛有一个字符串s,并且允许你从s中移除最多k个字符,你的目标是让得到的字符串的价值最小。

输入描述:

输入包括两行,第一行一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),其中只包含小写字母(‘a’-‘z’)。
第二行包含一个整数k(0 ≤ k ≤ length),即允许移除的字符个数。

输出描述:

输出一个整数,表示得到的最小价值
示例1
输入
aba
1
输出
2

let ans = (str,num)=>{    let str_ = {},ans_arr = [],ret=0    for(let i=0;i<str.length;i++){        if(str[i] in str_){            str_[str[i]]++            }else{            str_[str[i]]=1        }    }    for(let char_ in str_){        ans_arr.push(str_[char_])    }    for(let i=0;i<parseInt(num);i++){        let max_num = 0,max_index = 0        for(let i=0;i<ans_arr.length;i++){            if(ans_arr[i]>=max_num){                max_num = ans_arr[i]                max_index = i            }        }        ans_arr[max_index]--    }       for(let i=0;i<ans_arr.length;i++){        ret+= ans_arr[i]*ans_arr[i]    }       return ret}// console.log(ans('abaccd','3'))console.log(ans('wersrsresesrsesrawsdsw','11'))