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个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。 |
|---|---|
| 知识点 | 字符串 |
| 运行时间限制 | 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(测试通过)的更多相关文章
- HW--漂亮度
描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和.每个字母都有一个“漂亮度”,范围在1到26之间.没有任何两个字母拥有相同的“漂亮度”.字母忽略大小 ...
- HashMap使用
/* * 测试HashMap的应用,判断 */ import java.util.HashMap; public class HuaWeiTest { private static final Int ...
- 使用 CXF 做 webservice 简单例子
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...
- 屏幕实战效果解析:IPS/TFT/AMOLED/SLCD
现在手机市场上,智能手机种类繁多,手机屏幕材质也是五花八门.对于一般消费者来说,一款手机是否值得购买,除了关心它的硬件参数以外,更重要的一点就是看它的屏幕.除了屏幕尺寸以外,影响着大家对该手机的第一感 ...
- Apache CXF 例子
来自:http://www.cnblogs.com/frankliiu-java/articles/1641949.html Apache CXF 是一个开放源代码框架,是在Xfire 跟Celtix ...
- CXF之webservice
使用 CXF 做 webservice 简单例子 Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...
- 使用 CXF 做 webservice 简单例子[转]
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...
- HDTV(1920x1080)码率和视频质量关系的研究 1 (前期准备)
Hans Hoffmann等人在论文<Studies on the Bit Rate Requirements for a HDTV Format With 1920 x 1080 pixel ...
- CS61A hw01
前不久在知乎上看到CS61A 和CS61B spring18 开课的消息.上去看了一眼,发现真的不错,所有proj hw都可以本地测试!也就是说除了没有课程成绩和官方讨论区和TA解答外,这个课完全可以 ...
随机推荐
- hdu4435-charge-station(搜索+贪心)
题意&题解: http://www.cnblogs.com/wuminye/p/3245546.html 说实话看了题解觉得很简单,但是比赛的时候真的是毫无头绪. 然而印象中做过一道类似的二进 ...
- 射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡【worlsing笔记】
Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听.数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥.现代加密技术的一大特点是加密算法公开,如果 ...
- (二) win8+XAML Binding(数据绑定)
第一次接触Binding是用到listview的时候,ListView中如果要动态显示一些内容,我一开始想的就是动态生成一个item,然后插入... 其实用Binding就不用在代码中涉及listvi ...
- Android 解析 xml
URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection )httpUrl.openConnection(); c ...
- C++学习笔记(十六):友元
问题的提出: 我们已知道类具备封装和信息隐 藏的特性.只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的.非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的, ...
- C/C++中的变量作用域
#include <iostream> using namespace std; int i = 1;int j = 2; int main(){ int i = 9; //C/ ...
- Postgresql:prepared statement "S_1" already exists
近期由于业务需要和一些json的存储查询需要,把新的应用切到pgsql上来,刚刚切好,是可以正常使用的,但是偶尔会来一下 java连接pgsql 偶尔出现 这个错. org.postgresql. ...
- hbase运维
NoSQL现在风生水起,hbase的使用也越来越广,但目前几乎所有的NoSQL产品在运维上都没法和DB相提并论,在这篇blog中来总结下我们在运维hbase时的一些问题以及解决的方法,也希望得到更多h ...
- android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (3)
上节已经详细说了下注入过程,最后寄生进程在宿主进程中下了个蛋,这下完的蛋有什么作用呢?接下来再具体分析一下. lib0的感染过程分析 对于本例注入的so动态库,首先看一下so的符号: $ readel ...
- Android虚拟环境的工具集Genymotion完整安装教程
Genymotion提供Android虚拟环境的工具集.相信很多Android开发者一定受够了速度慢.体验差效率及其地下的官方模拟器了.如果你没有物理机器,又不想忍受官方模拟器的折磨,Genymoti ...