HW--漂亮度2

总结:几个函数的使用

(1)  int num=Integer.parseInt(str[0]); //将第一个字符串转成整形数,表示名字个数

(2) String string1=str[i].toLowerCase(); //变小写都

(3)  char ch[]=string1.toCharArray(); //将每一个字符串转成相印的字符数组

(4)  String st=Integer.toString( num1[p]); //将int型转换成字符串型

  (5)   算法层面:计算出每个名字字母出现的个数,排序后,直接按照排序后的计数进行计算就行了,计数最多的是26,一次递减就行了

描述
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。

知识点 字符串
运行时间限制 0M
内存限制 0
输入
整数N,后续N个名字

N个字符串,每个表示一个名字

输出
每个名称可能的最大漂亮程度

样例输入 2 zhangsan lisi
样例输出 192 101

个人电脑测试版本:

package huawei4;
import java.util.Scanner;
public class Beautiful {
    public static void main(String[] args){
        System.out.println("请输入样例:");
        Scanner scStr=new Scanner(System.in);
        String in=scStr.nextLine();
        String str[]=in.split(" "); //存起来,空格分割;
        int num=Integer.parseInt(str[0]);  //将第一个字符串转成整形数,表示名字个数

        int num1[]=new int[num];           //存放每一个名字的漂亮度
        for(int i=1;i<=num;i++) {
            int tmp[]=new int[26];                //存放每个名字26个字母分别出现的个数
            String string1=str[i].toLowerCase();  //变小写都
            char ch[]=string1.toCharArray();      //将每一个字符串转成相印的字符数组
            for(int j=0;j<str[i].length();j++){  // 统计个数
                 int k=ch[j]-‘a‘;
                 if((k>=0)&&(k<=26)){
                 tmp[k]++;  //如果在这个范围内加1;
                }
            }
            //冒泡对tmp
            int tmp2;
            for(int p=tmp.length-1;p>0;p--){
                for(int q=0;q<p;q++){
                    if(tmp[q+1]<tmp[q]){
                        tmp2=tmp[q];
                        tmp[q]=tmp[q+1];
                        tmp[q+1]=tmp2;
                    }
                }
            }
            //不需要在计算每个字母了,直接遍历字母个数
            for(int k=0;k<tmp.length;k++) {
                     num1[i-1]=num1[i-1]+tmp[k]*(26+k-25);  //如果在这个范围内加1;
                   }
        }
        StringBuffer tt=new StringBuffer();
        for(int p=0;p<num;p++){
            String st=Integer.toString( num1[p]); //将int型转换成字符串型
            tt.append(st);
            if(p!=num-1)
                tt.append(" ");  //空格,如果不是最后一个名字
        }
        System.out.print(tt);
//        for(int p=0;p<num;p++){
//            System.out.println(num1[p]);
//        }

    }
}

华为在线OJ版本:

view plaincopy to clipboardprint?
import java.util.Scanner;
public class Main{
    public static void main(String[] args){  

        Scanner scStr=new Scanner(System.in);
        String in=scStr.nextLine();
        String str[]=in.split(" "); //存起来,空格分割;
        int num=Integer.parseInt(str[0]);  //将第一个字符串转成整形数,表示名字个数  

        int num1[]=new int[num];           //存放每一个名字的漂亮度
        for(int i=1;i<=num;i++) {
            int tmp[]=new int[26];                //存放每个名字26个字母分别出现的个数
            String string1=str[i].toLowerCase();  //变小写都
            char ch[]=string1.toCharArray();      //将每一个字符串转成相印的字符数组
            for(int j=0;j<str[i].length();j++){  // 统计个数
                 int k=ch[j]-‘a‘;
                 if((k>=0)&&(k<=26)){
                 tmp[k]++;  //如果在这个范围内加1;
                }
            }
            //冒泡对tmp
            int tmp2;
            for(int p=tmp.length-1;p>0;p--){
                for(int q=0;q<p;q++){
                    if(tmp[q+1]<tmp[q]){
                        tmp2=tmp[q];
                        tmp[q]=tmp[q+1];
                        tmp[q+1]=tmp2;
                    }
                }
            }
            //不需要在计算每个字母了,直接遍历字母个数
            for(int k=0;k<tmp.length;k++) {
                   num1[i-1]=num1[i-1]+tmp[k]*(26+k-25);  //如果在这个范围内加1;
                 }
        }
        StringBuffer tt=new StringBuffer();
        for(int p=0;p<num;p++){
            String st=Integer.toString( num1[p]);
            tt.append(st);
            if(p!=num-1)
                tt.append(" ");  //空格,如果不是最后一个名字
        }
        System.out.print(tt);  

    }
}  
时间: 2024-11-01 14:28:45

HW--漂亮度2的相关文章

名字的漂亮度

题目如下: 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和. 每个字母都有一个“漂亮度”,范围在1到26之间.没有任何两个字母拥有相同的“漂亮度”.字母忽略大小写. 给出多个名字,计算每个名字最大可能的“漂亮度”. 输入: 整数N,后面N个名字,如 2 zhangsan lisi 输出: 每个名字对应的最大漂亮程度 如:192 101 分析:名字的漂亮度=26*字母个数最多的+25*字母个数其次的+24*字母个数再其次的(忽略大小写)+....+1

华为初级——名字的漂亮度

值得注意:对于每个名字来说:名字的漂亮度=26*字母个数最多的+25*字母个数其次的+24*字母个数再其次的-- 源程序: #include<iostream> #include<string> using namespace std; const int M=50; int main() { int n,i,j,k,len; int beauti[M]={0}; int t; cin>>n; char a[M][30]; for(i=0;i<n;i++) cin

华为机试—名字的漂亮度

名字的漂亮度=26*字母个数最多的+25*字母个数其次的+24*字母个数再其次的(忽略大小写)+-.+1*出现次数最小的. 输入:整数N,N个字符串 输出:N个字符串漂亮度 例如: 输入1 a 输出 26 c #include<iostream> #include<string> #include<cctype> #include<algorithm> using namespace std; bool cmp(int a, int b) { return

编程练习:名字的漂亮度

题目来源:华为OJ 1 // nameBeautyDegree.cpp : 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include <iostream> 6 #include <stdlib.h> 7 #include <string> 8 #include <map> 9 using namespace std; 10 //冒泡排序 11 void sort(int *array,s

【华为OJ】【033-名字的漂亮度】

[华为OJ][算法总篇章] [华为OJ][033-名字的漂亮度] [工程下载] 题目描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的"漂亮度"是其所有字母"漂亮度"的总和. 每个字母都有一个"漂亮度",范围在1到26之间.没有任何两个字母拥有相同的"漂亮度".字母忽略大小写. 给出多个名字,计算每个名字最大可能的"漂亮度". 输入描述 整数N,后续N个名字 N个字符串,每个表示一个名字 输出描

华为OJ平台试题 —— 字符串:名字的漂亮度

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">1.名字的漂亮度</span> 代码: <pre name="code" class="cpp"> #include<stdio.h> /* * 对数组a 进行排序 */ voi

HW--漂亮度

描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和.每个字母都有一个“漂亮度”,范围在1到26之间.没有任何两个字母拥有相同的“漂亮度”.字母忽略大小写.给出多个名字,计算每个名字最大可能的“漂亮度”. 知识点 字符串 运行时间限制 0M 内存限制 0 输入 整数N,后续N个名字 N个字符串,每个表示一个名字 输出 每个名称可能的最大漂亮程度 样例输入 2 zhangsan lisi 样例输出 192 101

Codeforces Round #413, rated, Div. 1 + Div. 2 C. Fountains(贪心 or 树状数组)

http://codeforces.com/contest/799/problem/C 题意: 有n做花园,有人有c个硬币,d个钻石 (2 ≤ n ≤ 100 000, 0 ≤ c, d ≤ 100 000) ,每一个花园用三个维度描述(a,b,c),分别是美丽度,所花钱币个数,钱币种类,当然,钱币之间不能兑换,该人必须要建筑两座花园,如果可以,输出两座花园总的美丽度,否则输出0: 思路: 首先想到分三种情况讨论,两个花园都用硬币,两个花园都用钻石,一个用钻石一个用硬币. 大神的代码真的是很厉害

CON1023 明明的计划

比赛说明 邀请码:a08f 来源:自出 描述:无 难度:NOIP提高组day1 赛时答疑:私信询问 奖励:无 试题列表 赛题 #A:数学题赛题 #B:明明泡妹子赛题 #C:明明去酒店 U5012 数学题 题目背景 明明是个富二代,可我却自己上班挣钱,明明可以开豪车,可我却每天挤公交,明明可以靠脸吃饭,可我却自己努力着,这就是我和明明的区别 题目描述 A1=2 A2=23 A3=233 A4=2333 A5=23333 A6=233333 A7=23333333333333333333333333