




已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
要求考试要求(实际考试时,要仔细看一下考试要求,可能有变动)。1、考虑可能出现的异常情况,空指针,下标越界,数字转换等异常2、控制台不能打印任何的提示信息3、代码提交必须包含主函数和其所有子函数4、使用标准输入new Scanner(System.in)和输出system.out.println();注意代码规范:1,TAB符2,魔鬼数字:在代码中使用魔鬼数字(没有具体含义的数字、字符串等)将会导致代码难以理解,应该将数字定义为名称有意义的常量。3,运算符前后空格4,if、for等关键字后的空格程序格式参照示例程序:import java.util.Scanner;/* * 类注释 */public class Main public static void main(String args) Scanner sc = new Scanner(System.in); while(sc.hasNext() int num = sc.nextInt(); /调用实现方法并 /控制台输出 /* * 实现方法注释 * 简述 * 详述 * 参数 * 返回类型 */ public 返回类型 method(参数列表); /具体实现代码 2016年2月18日 华为机试题目1、将十六进制的字符串转换成十进制字符串要求:1、以0x或0X开头2、十六进制范围小于2的32次方:位数不超过8位,同时不能全为FFFFFFFF3、A-F大小写都可以输入:0xA 输出:10package com.huawei.test.zj.v1;import java.util.Scanner;/* * 将十六进制的字符串转换成十进制字符串 * 1、以0x或0X开头 * 2、十六进制范围小于2的32次方:位数不超过8位,同时不能全为FFFFFFFF * 3、A-F大小写都可以 * 输入:0xA 输出:10 * 输入0xad32 输出:44338 * 输入:0xFFFF 输出:65535 */public class Main1 public static void main(String args) Scanner sc = new Scanner(System.in);String input = sc.nextLine();Main1 m = new Main1();System.out.println(m.tranString(input);System.out.println(m.tranString2(input);public String tranString(String input)if(input = null | .equals(input)return invalid input;if(!input.startsWith(0x) & !input.startsWith(0X)return invalid input;input = input.substring(2,input.length();char arrayCh = input.toCharArray();if(arrayCh.length 8 | FFFFFFFF.equals(input.toUpperCase()return invalid input;if(!input.matches(a-fA-F0-9)return invalid input;int sum = 0;for (int i = 0; i = 48 & ch 8 | FFFFFFFF.equals(input.toUpperCase()return invalid input;if(!input.matches(a-fA-F0-9)return invalid input;int sum = 0;trysum = Integer.parseInt(input,16);catch(Exception e)return invalid input;return String.valueOf(sum);2、对于abcdn字符串,求字符串(a*31+b)*31+c)*31+)*31+n例如字符串abcd 输出对应的hashcode值是一个整数。输入:abc 输出:96354输出结果hashcode可能超过32位,考虑使用64位整数。package com.huawei.test.zj.v1;import java.util.Scanner;/* * 对于abcdn字符串,求字符串(a*31+b)*31+c)*31+)*31+n * 例如字符串abcd 输出对应的hashcode值是一个整数。 * 输入:abc 输出:96354 * 输出结果hashcode可能超过32位,考虑使用64位整数 */public class Main2 public static void main(String args) /TODO:1、是否需要判断计算结果超出64位;2、字符串是不是一定小写;3、字符串范围是an?Scanner sc = new Scanner(System.in);String input = sc.nextLine();if(input.matches(a-n+)System.out.println(computerHashCode(input);elseSystem.out.println(非法输入);public static long computerHashCode(String input)char arrayCh = input.toCharArray();long sum = 0;for(int i = 0; i arrayCh.length; i+)sum = String.valueOf(arrayChi).hashCode() + sum * 31;return sum;原版本题目 1:按规定重排给定字符串要求:输入一个字符串,字符串是字母和数字的组合,(非字母数字直接删除)实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变用例1:输入字符串:a1b2c3d4e5期望结果:abcde12345用例2:输入:a-1%b2&c3d4e5期望结果:abcde12345用例3:输入:a-0%A2&c3Z4e5z9期望结果:aAcZez023459package com.huawei.test.zj.v1;import java.util.Scanner;/* * 按规定重排给定字符串 * 要求:输入一个字符串,字符串是字母和数字的组合,(非字母数字直接删除) * 实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变 * 例1:输入字符串:a1b2c3d4e5 期望结果:abcde12345 * * */publicclass Test01_ResetString publicstaticvoid main(String args) Scanner sc = new Scanner(System.in);while(sc.hasNext()String str = sc.nextLine();String result = resetString(str);System.out.println(重排结果:+result);publicstatic String resetString(String str) str=str.replaceAll(a-zA-Z0-9, );StringBuffer charBf = new StringBuffer();StringBuffer numbBf = new StringBuffer();for (int i = 0; i =65) charBf.append(str.charAt(i); else numbBf.append(str.charAt(i);return charBf.append(numbBf).toString();2:获取二维数组中每列最小值用例1:输入数组:3,6,5,0,2,10,10,8,9期望结果:0,2,5用例2:输入数组:3,6,5,0,2,10,10,8,9,11,12,13,14期望结果:0,2,5,14用例2:输入数组:3,6,5,0,2,10,10,8,9,-1期望结果:0,2,5,14package com.huawei.test.zj.v1;import java.util.Arrays;import java.util.HashMap;import java.util.Map;/* * 获取二维数组中每列最小值 * * 用例1: * 输入数组:3,6,5,0,2,10,10,8,9期望结果:0,2,5 * * */public class Test02_FindMin public static void main(String args)int inArr = new int3,6,5,0,2,10,10,8,9,11,12,13,14;System.out.println(计算后结果:+Arrays.toString(findMinByMap(inArr);public static Integer findMinByMap(int inArr)/arrMap用于存放每一列最小值Map arrMap = new HashMap();for(int i = 0; i inArr.length; i+)for(int j = 0; j inArri.length; j+)arrMap = setMin(j,inArrij,arrMap);return arrMap.values().toArray(new Integer0);private static Map setMin(int column,int value,Map arrMap)/如果map中没有值,则添加if (arrMap = null | arrMap.isEmpty() arrMap.put(column, value);return arrMap;/如果map中没有该列的值,则将值添加进去;/如果map中有该列的值,但是不是最小值,则替换;否则,不做处理;if(!arrMap.containsKey(column)arrMap.put(column, value);return arrMap;else if(arrMap.get(column) value)arrMap.put(column, value);return arrMap;return arrMap;3:查询最长单词(正则表达式)用例1:输入字符串:Genetics To undergo or cause recombination; form new combinations.期望结果:recombination用例2:输入字符串:Genetics 0123456789101 undergo or cause recombination; form new combinations.期望结果:0123456789101package com.huawei.test.zj.v1;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;/* * 查询最长单词 * 用例1:输入:Genetics 0123456789101 undergo or cause recombination; form new combinations. * 期望结果:0123456789101 */publicclass Test03_SearchMaxWord publicstaticvoid main(String args)Scanner sc = new Scanner(System.in);String input = sc.nextLine();System.out.println(最长单词:+searchMaxWord(input);/* 方法二 */publicstatic String searchMaxWord2(String str)String reg = ba-zA-Z0-9+b;Pattern p1 = Ppile(reg);Matcher m1 = p1.matcher(str);String temp = ;int i = 0;while (m1.find() String s = m1.group();if (s.length() i) i = s.length();temp = s;return temp; /* 方法一 */publicstatic String searchMaxWord(String str)String strs = str.split( |;);String resultStr=;if(strs.length 0)for(int i = 0;i strs.length;i+)if(resultStr.length()strsi.length()resultStr = strsi;return resultStr;4:将数字替换成字母要求:按ASCII码替换,如65替换成A。非字母以?替代用例1:输入:15,20,70,122,575期望结果:?fZ?package com.huawei.test.zj.v1;/* * 将数字替换成字母 * 按ASCII码替换,如65替换成A。非字母以?替代 * 用例1: * 输入:15,20,70,122,575 * 期望结果:?fZ? * * */publicclass Test04_NumbReplaceLetter publicstaticvoid main(String args) int numb = 15,20,70,122,575;System.out.println(替换结果:+replaceLetter(numb);publicstatic String replaceLetter(int numb)StringBuffer stb = new StringBuffer();for(int i = 0; i 64 & numbi 96 & numbi 123)stb.append(char)numbi);ASCII转换字符elsestb.append(?);return stb.toString();5:比较2个字符串的大小用例1:输入:str1=HARD,str2=hark期望结果:-7用例2:输入:str1=hark,str2=HARD期望结果:7用例3:输入:str1=hark,str2=hark期望结果:0package com.huawei.test.zj.v1;/* * 比较2个字符串的大小 * 用例1:输入:str1=HARD,str2=hark期望结果:-7 * 用例2:输入:str1=hark,str2=HARD期望结果:7 * 用例3:输入:str1=hark,str2=hark期望结果:0*/publicclass Test05_StringCompare publicstaticvoid main(String args) String str1=HARD;String str2=hark;System.out.println(比较结果:+compareString(str1,str2);publicstaticint compareString(String sourceStr,String targetStr)return sourceSpareToIgnoreCase(targetStr);6:首字母大写其余小写(正则表达式)判断字符串是否符合要求(正则表达式)要求首字母为大写,其它都为小写的字符串用例1输入:Darkdss,输出:true用例2输入:Za12$%rksz, 输出:false用例3:输入:zrkAs,期望结果:false package com.huawei.test.zj.v1;import java.util.Scanner;/* * 判断字符串是否符合要求* 用例1:输入:Darkdss,输出:true * 用例2:输入:Za12$%rksz, 输出:false * 用例3:输入:zrkAs,期望结果:false*/publicclass Test06_StringJudge publicstaticvoid main(String args) Scanner sc = new Scanner(System.in);while(sc.hasNext()String input = sc.nextLine();String reg = A-Za-z*;System.out.println(input.matches(reg);7:将输入的秒转换成DDD:HH:MM:SS格式用例1:输入:-1111111输出:0:00:00:00用例2:输入:90066输出:1:01:01:06用例3:输入: 13419006输出:155:07:30:06package com.huawei.test.zj.v1;import java.text.DecimalFormat;import java.util.Scanner;/* * 将输入的秒转换成DD:HH:MM:SS格式 * 用例1:输入:-1111111 输出:0:00:00:00 * 用例2:输入:90066 输出:1:01:01:06 * 用例3:输入: 13419006 输出:155:07:30:06 */publicclass Test07_ConversionFormat publicstaticvoid main(String args) Scanner sc = new Scanner(System.in);while(sc.hasNext()long num = sc.nextLong();System.out.println(处理结果:+conversionFormat(num);publicstatic String conversionFormat(long numb)if(numb = 0)return0:00:00:00;int second = 0, minute, hour, day;second = (int)numb % 60;numb = numb / 60;minute = (int)numb % 60;numb = numb / 60;hour = (int)numb % 24;day = (int)numb / 24;DecimalFormat df = new DecimalFormat(00);return day+:+df.format(hour)+:+df.format(minute)+:+df.format(second);8:一维数组中大于平均值的个数用例1:输入:1,2,3,4,5,6,7输出:4用例2:输入:5,5,5,5输出: 0用例3:输入:或null输出:-1package com.huawei.test.zj.v1;import java.util.Scanner;/* * 一维数组中大于平均值的个数 * 用例1:输入:1,2,3,4,5,6,7输出:4 * 用例2:输入:5,5,5,5输出: 0 * 用例3:输入:或null输出:-1 */publicclass Test08_MoreAverageNumb publicstaticvoid main(String args)Scanner sc = new Scanner(System.in);while(sc.hasNext()String input = sc.nextLine();input = input.substring(1,input.length()-1);String numb = input.split(,);System.out.println(个数:+moreAverageNumb(numb);publicstatic String moreAverageNumb(String array)int numb =0;if(null = array |array.length = 0)return-1;int total = 0;for(int i = 0; i array.length; i+)total += Integer.parseInt(arrayi);double average = total / array.length;for(int i = 0; i array.length; i+)if(average Integer.parseInt(arrayi)numb+;return String.valueOf(numb);9:数组逆向相加用例1:输入:1,2,3,4,5,6,71,2,3,4,5,6,7输出:8,8,8,8,8,8,8package com.huawei.test.zj.v1;import java.util.Arrays;import java.util.Scanner;/* * 数组逆向相加 * 用例1:输入:1,2,3,4,5,6,71,2,3,4,5,6,7 * 输出:8,8,8,8,8,8,8 * */publicclass Test09_ReverseCombined publicstaticvoid main(String args)Scanner sc = new Scanner(System.in);String input;while(sc.hasNext()input = sc.nextLine().trim();String arrays = input.split();String str1= arrays0.trim();String str2= arrays1.trim();String arrayStr1 = str1.substring(1,str1.length().split(,);String arrayStr2 = str2.substring(1,str2.length().split(,);System.out.println(计算结果:+Arrays.toString(ReverseCombined(arrayStr1,arrayStr2);publicstaticint ReverseCombined(String source1,String source2) int len = source1.length;if(source1.length source2.length)len = source2.length;int target = newintlen;for (int i = 0; i len; i+)int addA = 0,addB = 0;if(i source1.length)addA = Integer.parseInt(source1i);if(0 a(97+5=102)-f(102), * 用例2:输入:z输出:E 分析:z-Z(90+5-E)- */publicclass Test10_CaseConversion publicstaticvoid main(String args) Scanner sc = new Scanner(System.in);while(sc.hasNext()String input = sc.nextLine();char c = input.toCharArray();System.out.println(caseConversion(c0);publicstaticchar caseConversion(char c)if(Character.isLowerCase(c)c = Character.toUpperCase(c);elsec = Character.toLowerCase(c);int numb = c + 5;if(numb 90 & numb 122 )numb = numb -122 + 96;return (char)numb;11:求数组的最大值和次大值要求:求值函数只能调用一次,但是要返回俩个值用例1:输入:7,1,2,5,6,3,4输出:7,6package com.huawei.test.zj.v1;import java.util.Arrays;import java.util.Scanner;/* * 求数组的最大值和次大值 * 要求:求值函数只能调用一次,但是要返回俩个值 * 输入:7,1,2,5,6,3,4输出:7,6 */publicclass Test11_SearchArrayMax publicstaticvoid main(String args) Scanner sc = new Scanner(System.in);String input;while(sc.hasNext()input = sc.nextLine().trim();input = input.substring(1,input.length()-1).trim();String array = null;if(!.equals(input)array = input.split(,);String result = searchArrayMax(array);if(array = null | array.length = 0)System.out.println(没有值!);elseif(array.length = 1)System.out.println(最大值:+arrayarray.length-1);elseSystem.out.println(最大值和次大值为:+resultresult.length-1+,+resultresult.length-2);publicstatic String searchArrayMax(String inArray)if(inArray = null | inArray.length=0)return inArray;Arrays.sort(inArray);return inArray;12:截除一个字符串中出现次数最多多字符题目和案例不太一样用例:输入:They dug another well in the village输出:anotherpackage com.huawei.test.zj.v1;import java.util.HashMap;import java.util.Map;import java.util.Scanner;/* * 截除一个字符串中出现次数最多多字符* 用例1:输入:They dug another well in the village输出:another * 自己想:处理前的字符串:addcbbs处理后的字符串:acs * */publicclass Test12_CutLongString publicstaticvoid main(String args) Scanner sc = new Scanner(System.in);String input;while(sc.hasNext()input = sc.nextLine().trim();System.out.println(处理后的字符串:+removeMostChar(input);privatestatic String removeMostChar(String str)if(str = null | .equals(str)return str;int maxNum = 0;Map charMap = new HashMap();for(int i=0;istr.length();i+)Integer count = charMap.get(str.charAt(i);charMap.put(str.charAt(i), (count = null) ? 1 : +count);if(null !=count & maxNum count )maxNum = count;for(Map.Entry entry : charMap.entrySet()if(entry.getValue() = maxNum)str = str.replaceAll(String.valueOf(entry.getKey(), );return str;13:数组倒置(不足补零)用例:输入:1,2,3,4,5,6,7,8,9输出:1,4,8,0,2,5,9,0,3,6,0,0,0,7,0,0package com.huawei.test.zj.v1;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;/* * 数组倒置 * 输入:1,2,3,4,5,6,7,8,9 * 输出:1,4,8,0,2,5,9,0,3,6,0,0,0,7,0,0 */publicclass Test13_TransposeArray publicstaticvoid main(String args) int inArray = 1,2,3,4,5,6,7,8,9;int resultArray = reverseArray(inArray);/打印二维数组System.out.print(转置结果:);for(int i = 0; i resultArray.length; i+)System.out.print();for(int j = 0; j resultArrayi.length; j+)System.out.print(resultArrayij);if(j != resultArrayi.length-1)System.out.print(,);System.out.print();if(i != resultArray.length-1)System.out.print(,);System.out.print();/* 数组转置 */privatestaticint reverseArray(int inArray)if(inArray = null | inArray.length = 0)return inArray;/用于记录数组长度int max = inArray.length;Map arrMap = new HashMap();for(int i = 0; i inArray.length; i+)List arrList = newLinkedList();for(int j = 0; j inArrayi.length; j+)arrList.add(inArrayij);arrMap.put(i, arrList);if(max inArrayi.length)max = inArrayi.length;int resultArray = newintmaxmax;for(Map.Entry entry : arrMap.entrySet()if(entry.getKey() = 0 & entry.getValue().size() 0)for(int i = 0; i entry.getValue().size(); i+)resultArrayientry.getKey() = (Integer) entry.getValue().get(i);return resultArray;14:判断一个整数是否为回文数题目描述:有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。要求实现方法:public String isPalindrome(String strIn);【输入】strIn: 整数,以字符串表示;【返回】true: 是回文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子版房产抵押借款合同2篇
- 新解读《GB-T 32606-2016文具用品中游离甲醛的测定方法 乙酰丙酮分光光度法》
- 酒店住房结算合同范本
- 小区车位交易合同范本
- 国内的生产合同范本
- 购房合同范本文案
- 外委项目研发合同范本
- 地板委托加工合同范本
- 花店双方合作合同范本
- 养鸡户合同范本
- 2025年四川省成都市高新区事业单位招聘考试综合类面试真题模拟试卷
- GB/T 7251.10-2025低压成套开关设备和控制设备第10部分:规定成套设备的指南
- 七下期末人教版数学试卷
- 2025新疆巴音郭楞州和硕县面向社会招聘社区工作者7人笔试参考题库附答案解析
- 2025年六安市裕安区石婆店镇公开招考村级后备干部8名笔试备考试题及答案解析
- 2025年事业单位考试题库及参考答案
- 2025年公安机关人民警察(基本级)执法资格等级题库及答案
- 物流客服培训课件
- 人教版(2024)八年级上册英语Unit 2 Home Sweet Home教案
- 校园食堂食品安全知识培训课件
- 2025年中小学学生校园安全学习教育基本知识试题库(附含答案)
评论
0/150
提交评论