题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
//用了笨方法,先把字符串转换为小写,再计算计算串中a-z出现的个数,然后个数*漂亮度得出结果。对于我这菜鸟来说,能用一维数组解决的坚决不用二维数组,也不怎么会用list、map。 哈哈
import java.util.Scanner;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
String[] str = new String[n];
for(int m =0; m<n;m++) {
str[m] = sc.next().toLowerCase();
String[] ss = str[m].split("");
Arrays.parallelSort(ss);
// 计算字符种类和个数
int[] arr = new int[26];
for(int k=0;k<ss.length;k++) {
if(ss[k].charAt(0)=='a') {
arr[0]++;
}
if(ss[k].charAt(0)=='b') {
arr[1]++;
}
if(ss[k].charAt(0)=='c') {
arr[2]++;
}
if(ss[k].charAt(0)=='d') {
arr[3]++;
}
if(ss[k].charAt(0)=='e') {
arr[4]++;
}
if(ss[k].charAt(0)=='f') {
arr[5]++;
}
if(ss[k].charAt(0)=='g') {
arr[6]++;
}
if(ss[k].charAt(0)=='h') {
arr[7]++;
}
if(ss[k].charAt(0)=='i') {
arr[8]++;
}
if(ss[k].charAt(0)=='j') {
arr[9]++;
}
if(ss[k].charAt(0)=='k') {
arr[10]++;
}
if(ss[k].charAt(0)=='l') {
arr[11]++;
}
if(ss[k].charAt(0)=='m') {
arr[12]++;
}
if(ss[k].charAt(0)=='n') {
arr[13]++;
}
if(ss[k].charAt(0)=='o') {
arr[14]++;
}
if(ss[k].charAt(0)=='p') {
arr[15]++;
}
if(ss[k].charAt(0)=='q') {
arr[16]++;
}
if(ss[k].charAt(0)=='r') {
arr[17]++;
}
if(ss[k].charAt(0)=='s') {
arr[18]++;
}
if(ss[k].charAt(0)=='t') {
arr[19]++;
}
if(ss[k].charAt(0)=='u') {
arr[20]++;
}
if(ss[k].charAt(0)=='v') {
arr[21]++;
}
if(ss[k].charAt(0)=='w') {
arr[22]++;
}
if(ss[k].charAt(0)=='x') {
arr[23]++;
}
if(ss[k].charAt(0)=='y') {
arr[24]++;
}
if(ss[k].charAt(0)=='z') {
arr[25]++;
}
}
// 排序
Arrays.parallelSort(arr);
int sum=0;
for(int r=0;r<arr.length;r++) {
if(arr[r]>0) {
sum=arr[r]*(r+1)+sum;
}
//sum=arr[r]*(arr.length-r)+sum;
}
System.out.println(sum);
}
}
}
}
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
String[] str = new String[n];
for(int m =0; m<n;m++) {
str[m] = sc.next().toLowerCase();
String[] ss = str[m].split("");
Arrays.parallelSort(ss);
// 计算字符种类和个数
int[] arr = new int[26];
for(int k=0;k<ss.length;k++) {
if(ss[k].charAt(0)=='a') {
arr[0]++;
}
if(ss[k].charAt(0)=='b') {
arr[1]++;
}
if(ss[k].charAt(0)=='c') {
arr[2]++;
}
if(ss[k].charAt(0)=='d') {
arr[3]++;
}
if(ss[k].charAt(0)=='e') {
arr[4]++;
}
if(ss[k].charAt(0)=='f') {
arr[5]++;
}
if(ss[k].charAt(0)=='g') {
arr[6]++;
}
if(ss[k].charAt(0)=='h') {
arr[7]++;
}
if(ss[k].charAt(0)=='i') {
arr[8]++;
}
if(ss[k].charAt(0)=='j') {
arr[9]++;
}
if(ss[k].charAt(0)=='k') {
arr[10]++;
}
if(ss[k].charAt(0)=='l') {
arr[11]++;
}
if(ss[k].charAt(0)=='m') {
arr[12]++;
}
if(ss[k].charAt(0)=='n') {
arr[13]++;
}
if(ss[k].charAt(0)=='o') {
arr[14]++;
}
if(ss[k].charAt(0)=='p') {
arr[15]++;
}
if(ss[k].charAt(0)=='q') {
arr[16]++;
}
if(ss[k].charAt(0)=='r') {
arr[17]++;
}
if(ss[k].charAt(0)=='s') {
arr[18]++;
}
if(ss[k].charAt(0)=='t') {
arr[19]++;
}
if(ss[k].charAt(0)=='u') {
arr[20]++;
}
if(ss[k].charAt(0)=='v') {
arr[21]++;
}
if(ss[k].charAt(0)=='w') {
arr[22]++;
}
if(ss[k].charAt(0)=='x') {
arr[23]++;
}
if(ss[k].charAt(0)=='y') {
arr[24]++;
}
if(ss[k].charAt(0)=='z') {
arr[25]++;
}
}
// 排序
Arrays.parallelSort(arr);
int sum=0;
for(int r=0;r<arr.length;r++) {
if(arr[r]>0) {
sum=arr[r]*(r+1)+sum;
}
//sum=arr[r]*(arr.length-r)+sum;
}
System.out.println(sum);
}
}
}
}

查看1道真题和解析