题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.*; public class Main{ public static void main(String[] args) throws IOException{ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i = 0;i < n;i++){ String s = sc.next(); System.out.println(cal(s)); } } public static int cal(String s){ char[] c = s.toCharArray(); StringBuilder sb = new StringBuilder(); int sum = 0; //记录所有字母 for(int i = 0;i < c.length;i++){ if(!sb.toString().contains(String.valueOf(c[i]))){ sb.append(c[i]); } } String res = sb.toString(); int n = 26; int[] nums = new int[26]; //记录每个字母出现的次数 for(int i = 0;i < res.length();i++){ int count = s.length() - s.replaceAll(String.valueOf(res.charAt(i)),"").length(); nums[i] = count; } Arrays.sort(nums); for(int i = 25;i >= 26-res.length();i--){ sum += nums[i]*n; n--; } return sum; } }菜鸟第一次自己写出中级题,留个纪念