题解 | #名字的漂亮度#
名字的漂亮度
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