总结:几个函数的使用

(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版本:

华为测试注意事项:

1、字符串输入的时候一定要用next(),不要使用nextLine();区别是next()可以以空格和enter键当作 分界线

     试验后发现next()方法是以换行或者空格符为分界线接收下一个String类型变量。

2、输出的时候多行输出的时候换行输出,不要在一行输出,如果一定在一行输出,考虑用print,不要用println

别人的说明:Java的使用Scanner的next()不要用nextline(),再将结果换行输出,应该就可以了;顶,真的就是这个问题

package huawei4;

import java.util.Scanner;
public class Beautiful{
public static void main(String[] args){ Scanner scStr=new Scanner(System.in);
int num=scStr.nextInt(); //名字个数
String name[]=new String[num]; //定义一个字符串数组
for(int k=0;k<num;k++){
name[k]=scStr.next(); //
}
int num1[]=new int[num]; //存放每一个名字的漂亮度
for(int i=0;i<num;i++) {
int tmp[]=new int[26]; //存放每个名字26个字母分别出现的个数
// String string1=str[i].toLowerCase(); //变小写都
char ch[]=name[i].toCharArray(); //将每一个字符串转成相印的字符数组
for(int j=0;j<name[i].length();j++){ // 统计个数
int k=0;
if(ch[j]>='a'&&ch[j]<='z'){
k=ch[j]-'a';
}
else
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]=num1[i]+tmp[k]*(26+k-25); //如果在这个范围内加1;
}
}
for(int p=0;p<num;p++){
System.out.println(num1[p]);
} }
}

HW--漂亮度2(测试通过)的更多相关文章

  1. HW--漂亮度

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

  2. HashMap使用

    /* * 测试HashMap的应用,判断 */ import java.util.HashMap; public class HuaWeiTest { private static final Int ...

  3. 使用 CXF 做 webservice 简单例子

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...

  4. 屏幕实战效果解析:IPS/TFT/AMOLED/SLCD

    现在手机市场上,智能手机种类繁多,手机屏幕材质也是五花八门.对于一般消费者来说,一款手机是否值得购买,除了关心它的硬件参数以外,更重要的一点就是看它的屏幕.除了屏幕尺寸以外,影响着大家对该手机的第一感 ...

  5. Apache CXF 例子

    来自:http://www.cnblogs.com/frankliiu-java/articles/1641949.html Apache CXF 是一个开放源代码框架,是在Xfire 跟Celtix ...

  6. CXF之webservice

    使用 CXF 做 webservice 简单例子     Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...

  7. 使用 CXF 做 webservice 简单例子[转]

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...

  8. HDTV(1920x1080)码率和视频质量关系的研究 1 (前期准备)

    Hans Hoffmann等人在论文<Studies on the Bit Rate Requirements for a HDTV Format With 1920 x 1080 pixel ...

  9. CS61A hw01

    前不久在知乎上看到CS61A 和CS61B spring18 开课的消息.上去看了一眼,发现真的不错,所有proj hw都可以本地测试!也就是说除了没有课程成绩和官方讨论区和TA解答外,这个课完全可以 ...

随机推荐

  1. hdu4435-charge-station(搜索+贪心)

    题意&题解: http://www.cnblogs.com/wuminye/p/3245546.html 说实话看了题解觉得很简单,但是比赛的时候真的是毫无头绪. 然而印象中做过一道类似的二进 ...

  2. 射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡【worlsing笔记】

    Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听.数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥.现代加密技术的一大特点是加密算法公开,如果 ...

  3. (二) win8+XAML Binding(数据绑定)

    第一次接触Binding是用到listview的时候,ListView中如果要动态显示一些内容,我一开始想的就是动态生成一个item,然后插入... 其实用Binding就不用在代码中涉及listvi ...

  4. Android 解析 xml

    URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection )httpUrl.openConnection(); c ...

  5. C++学习笔记(十六):友元

    问题的提出: 我们已知道类具备封装和信息隐 藏的特性.只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的.非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的, ...

  6. C/C++中的变量作用域

    #include <iostream> using namespace std; int i = 1;int j = 2; int main(){     int i = 9;  //C/ ...

  7. Postgresql:prepared statement "S_1" already exists

    近期由于业务需要和一些json的存储查询需要,把新的应用切到pgsql上来,刚刚切好,是可以正常使用的,但是偶尔会来一下 java连接pgsql 偶尔出现 这个错.   org.postgresql. ...

  8. hbase运维

    NoSQL现在风生水起,hbase的使用也越来越广,但目前几乎所有的NoSQL产品在运维上都没法和DB相提并论,在这篇blog中来总结下我们在运维hbase时的一些问题以及解决的方法,也希望得到更多h ...

  9. android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (3)

    上节已经详细说了下注入过程,最后寄生进程在宿主进程中下了个蛋,这下完的蛋有什么作用呢?接下来再具体分析一下. lib0的感染过程分析 对于本例注入的so动态库,首先看一下so的符号: $ readel ...

  10. Android虚拟环境的工具集Genymotion完整安装教程

    Genymotion提供Android虚拟环境的工具集.相信很多Android开发者一定受够了速度慢.体验差效率及其地下的官方模拟器了.如果你没有物理机器,又不想忍受官方模拟器的折磨,Genymoti ...