本篇博客所介绍题目的网址为:https://www.nowcoder.com/ta/huawei;华为机试在线训练
HJ1:字符串最后一个单词的长度(较难)
题目描述:计算字符串最后一个单词的长度,单词以空格隔开。
实现代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] strArr = str.split(" ");
System.out.println(strArr[strArr.length-1].length());
}
}
分析:
(1)这种机试形式,需要导入的包,需要手动import导入;
(2)next()从遇到第一个有效字符(非空格、换行符)开始扫描,遇到第一个分隔符或结束符(空格’ ‘或者换行符 ‘\n’)时结束。 nextLine()则是扫描剩下的所有字符串知道遇到回车为止。这个题目中:要求输入一行,字符串中会有空格,所以使用nextLine(),而不使用next();
(3)这个题目很简单,思路直接,没什么可说的;
HJ2:计算字符个数(较难)
题目描述:写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写。
实现代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = (sc.nextLine()).toUpperCase();
String someChar = sc.next().toUpperCase();
String str1 = str.replace(someChar,"");
System.out.println(str.length() - str1.length());
}
}
分析:
(1)这个题目的思路就是,利用str.replace(someChar,""); 把目标字符替换成“”;然后计算替换前后字符串长度的变化;(2)这个题目是否有其他更合理的解法,暂搁置啦;
HJ3:明明的随机数(较难)
题目描述: