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解答外,这个课完全可以 ...
随机推荐
- 10行Java代码实现最近被使用(LRU)缓存
在最近的面试中,我曾被多次问到,怎么实现一个最近最少使用(LRU)的缓存.缓存可以通过哈希表来实现,然而为这个缓存增加大小限制会变成另一个有意思的问题.现在我们看一下怎么实现. 最近最少使用缓存的回收 ...
- 教程-for do、while do 中循环退出
1.注意条件设置 for i:=1 to 10 dobegin if i>5 then begin break; end;end; break 全部continu ...
- Css3 display用法
display 属性规定元素应该生成的框的类型. display:none 此元素不会被显示 display:block 此元素将显示为块级元素,此元素前后会带有换行符 display:inl ...
- postfix反垃圾邮件说明
参考地址:http://guailele.blog.51cto.com/1156442/780223 1.打开 smtp 的认证模块 在/etc/postfix/main.cf文件最后加上: sm ...
- cocos2d-x与ios内存管理分析(在游戏中减少内存压力)
转自:http://www.cocos2dev.com/?p=281 注:自己以前也写过cocos2d-x如何优化内存的使用,以及内存不足的情况下怎么处理游戏.今天在微博中看到有朋友介绍了下内存,挺详 ...
- paip.c++ 常用类库attilax总结
paip.c++ 常用类库attilax总结 VCL: WINDOWS平台最好的类库了..推荐使用..开发效率最高. 1 QT..推荐使用..开发效率比较高. 1 GTK(GTKMM)...开发效率没 ...
- jquery处理单击和双击事件
今天做div点击时,需要用到同一div的单击和双击事件,出现问题如下 例子: Html <body> <div id="div_1">单击双击我</d ...
- 设计模式 - 命令模式(command pattern) 多命令 具体解释
命令模式(command pattern) 多命令 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考命令模式: http://blog.csdn.ne ...
- C#解决微信支付Exception has been thrown by the target of an invocation(调用的目标发生了异常)的问题
今天搭建微信扫码支付环境的时候,一样的配置参数,调用连接提示错误 错误:调用的目标发生了异常 然后跟踪到执行 MD5 md5 = System.Security.Cryptography.MD5.Cr ...
- Android View的绘制机制流程深入详解(四)
本系列文章主要着重深入介绍Android View的绘制机制及流程,第四篇主要介绍Android自定义View及ViewGroup的实现方法和流程. 主要介绍了自绘控件.自定义组合控件.自定义继承控件 ...