题解 | #名字的漂亮度#

名字的漂亮度

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

number = input('');
n = 1;
while n <= number
str = input('','s');
str = lower(str);
str_u = unique(str);     %去掉重复的,保留一条每个字母都只出现一次的字符串
n_str = length(str_u);      %字符串包含多少种字母
n_alpha = zeros(1,n_str);      %每种字母有几个
perfect = 0;        %初始漂亮度
for i = 1:n_str
    n_alpha(i) = length(strfind(str,str_u(i)));    %各个字母在原字符串中出现了多少回
 end
sort_al = sort(n_alpha);     %根据出现次数从小到大排序
for i = 1:n_str             %将从小到大排序换为从大到小排序
    for j = n_str+1-i
    s_al(j) = sort_al(i);
    end
end
for i = 1:n_str
    per_i = (27-i)*s_al(i);
    perfect = perfect + per_i;
end
fprintf('%d\n',perfect);
n=n+1;
end

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-08 14:27
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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