华为机试试题参考.docx
- 文档编号:5017203
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:58
- 大小:33.73KB
华为机试试题参考.docx
《华为机试试题参考.docx》由会员分享,可在线阅读,更多相关《华为机试试题参考.docx(58页珍藏版)》请在冰豆网上搜索。
华为机试试题参考
/**
a~z:
97-122
A~Z:
65-90
0~9:
48-58
1、程序实现目标:
输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:
该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
*/
publicstaticvoidgetResult(char[]ch){
for(inti=0;i if(ch[i]+5>'z'){ ch[i]=(char)(ch[i]-21); }else{ ch[i]=(char)(ch[i]+5); } } System.out.println(ch); } publicstaticvoidmain(String[]args){ Strings="afdsfdsxz"; char[]ch=s.toCharArray(); getResult(ch); } /** *2、求一个整形数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数 要求: 输入: 整形数组中的元素个数及各个元素 输出: 整型数组中元素的平均值,大于和小于此平均值的元素个数 */ publicclassMain011{ publicstaticvoidmain(String[]args){ int[]arr={1,100}; newMain011().getavage(arr,2); } publicvoidgetavage(int[]arr,intnum){ if(num==0){ System.out.println("数组为空"); }else{ doubleavage=0.0; intsum=0; intcount1=0; intcount2=0; for(inti=0;i sum+=arr[i]; } avage=(double)sum/num; for(intj=0;j if(arr[j]>avage){ count1++; }else{ count2++; } } System.out.println("平均值: "+avage); System.out.println("大于平均值的元素个数: "+count1); System.out.println("小于平均值的元素个数: "+count2); } } } /* *3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。 实例: 输入: 1,2,5,9,84,3,2 输出: 84,9 **/ publicstaticvoidmain(String[]args){ int[]a=newint[]{1,2,5,9,84,3,2}; //1冒泡排序算法 for(inti=0;i for(intj=i+1;j if(a[i]>a[j]){ inttmp=a[i]; a[i]=a[j]; a[j]=tmp; } } } //2进行排序Arrays.sort(a); for(inti=0;i System.out.println(a[i]); } System.out.println(a[a.length-1]); System.out.println(a[a.length-2]); } /* *4、题目描述: 有这样一类数字,他们顺着看和倒着看是相同的数,例如: 121,656,2332等, 这样的数字就称为: 回文数字。 编写一个函数,判断某数字是否是回文数字。 要求实现方法: publicStringisPalindrome(StringstrIn); 【输入】strIn: 整数,以字符串表示; 【返回】true: 是回文数字; false: 不是回文数字; 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例: 输入: strIn=“121” 返回: ”true */ //方法一 publicstaticvoidisPalindrome(Strings){ char[]ch=s.toCharArray(); booleanb=false; for(inti=0;i if(ch[i]==ch[ch.length-1-i]){ b=true; }else{ b=false; } } if(b){ System.out.println("你输入的是回文数"); }else{ System.out.println("你输入的不是回文数"); } } publicstaticvoidmain(String[]args){ Strings="123321"; isPalindrome(s); } //方法二 publicclassMain004{ publicstaticvoidmain(String[]args){ StringinputValue=JOptionPane.showInputDialog("请输入一个整数"); longinputValueLong=Long.parseLong(inputValue); longtemp=inputValueLong; longreverseLong=0L; while(inputValueLong! =0) { reverseLong=reverseLong*10+inputValueLong%10; inputValueLong=inputValueLong/10; } if(reverseLong==temp) System.out.println("你输入的是回文数"); else System.out.println("你输入的不是回文数"); } } /*5、要求: 随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字, 按照编码顺序排序,每行打印4个,要求首字符对齐 */ publicstaticStringgen(intlength){ char[]ss=newchar[length]; inti=0; while(i intf=(int)(Math.random()*3); if(f==0) ss[i]=(char)('A'+Math.random()*26); elseif(f==1) ss[i]=(char)('a'+Math.random()*26); else ss[i]=(char)('0'+Math.random()*10); i++; } returnnewString(ss); } publicstaticvoidmain(String[]args){ Set for(inti=0;i<50;i++){ strSet.add(Main5.gen(5)); } intcount=1; for(Strings: strSet){ System.out.print(s+""); if(count%4==0){ System.out.println(); } count++; } } 结果: 338qT3KbfMZ2Am1iZr80 QUoYIJyh82XkQ58BJ5iU eIg1e5e3DKikMXs8304Z 743WvZSkOxjMPc8W2wi7 VSYYV9Oy3QtPr039784N 88dgC753Ag6eckB3hp5a 2Ha9fqhs1oIpw7mM3pYv e2x8Edcdc9t22X37D7J3 pI1CRA22wF222iBYQe74 MNh8D30o1v5QSe04j24B V2m05NVsK6YJxplcxWPp mB6cwXKwj0I6NSOHsvPK Br83gSTii4 /* *6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。 *提示(可以用Map) 实例: 输入: aaabbbccc 输出: a3 b3 c3 */ publicclassMain006{ publicstaticvoidmain(String[]args){ statTimes("dfsdfgerfgtewthgat"); } staticvoidstatTimes(Stringparam) { if(param==null)return; //hashset保存不重复的值因此 HashSet char[]cs=param.toCharArray(); for(charc: cs) hSet.add(c); ArrayList intn=hSet.size();//有多少种字符 int[]times=newint[n];//保存每种字符的出现次数 for(charc: cs)//进行统计 times[list.indexOf(c)]++; for(inti=0;i System.out.println("字符"+list.get(i)+"出现了: "+times[i]+"次。 "); //打印结果 } } /* *7、要求实现方法publicStringaddTwoBigNumber(Strings1,strings2) 大数相加,注意处理异常 */ publicclassMain007{ Stringresult,s1,s2; ints1Len,s2Len; publicMain007(Stringstr1,Stringstr2) { s1=str1; s2=str2; } /** *@paramargs */ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); System.out.println("inputthefirstnumber: "); Strings1=sc.nextLine(); System.out.println("inputthesecondnumber: "); Strings2=sc.nextLine(); sc.close(); Main007a=newMain007(s1,s2); Stringres=a.add(); System.out.println("myaddresultis: "+res); } publicbooleancheck()//输入异常检查 { for(inti=0;i { if(s1.charAt(i)>'9'||s1.charAt(i)<'0') { System.out.println("firstinputisnotanumber"); returnfalse; } } for(inti=0;i { if(s2.charAt(i)>'9'||s2.charAt(i)<'0') { System.out.println("secondinputisnotanumber"); returnfalse; } } returntrue; } publicStringadd() { result=""; s1Len=s1.length(); s2Len=s2.length(); if(check()) { if(s1Len { StringtempStr=s2; s2=this.s1; s1=tempStr; inttempNum=s2Len; s2Len=s1Len; s1Len=tempNum; } intflag=0;//ifthereisacarry-overfromthebehindnumber intdeltaLen=s1Len-s2Len; intsum; for(inti=s1Len-1;i>=0;i--) { if(i-deltaLen>=0) sum=(s1.charAt(i)-'0')+(s2.charAt(i-deltaLen)-'0')+flag; else sum=(s1.charAt(i)-'0')+flag; flag=0; if(sum>9)//ifthereisacarry-over { sum-=10; flag=1; } result=sum+result; } if(flag==1)//ifthehighestbithasacarry-over { result="1"+result; flag=0; } } returnresult; } } /* *8、比较二维数组列最小值,组成一个新数组返回。 (实现核心算法,不需要使用IO) 输入: {{5,6,1,16},{7,3,9}} 输出: intArrs={1,3} */ publicclassMain008{ publicstaticvoidmain(Stringargs[]){ //写测试方法 int[][]a={{5,6,1,16},{7,3,9},{2,4,56}}; int[]ss=getColMin(a); for(inti=0;i System.out.print(ss[i]+""); } } publicstaticint[]getColMin(inta[][]){ int[]res=newint[a.length]; for(inti=0;i int[]s=a[i]; Arrays.sort(s); res[i]=s[0]; } returnres; } } /* *9、输入: aaa,cattiger.123dd 输出: tiger 功能描述: 键盘输入一句话 输出一句话中最长的单词,如果最长的出现多次,返回第一个。 这句话只包含数字字母和标点。 */ publicclassMain009{ privatestaticStringlangWord(StringinString){ intsum=0; String[]strings=inString.split("[,.1-9]"); ArrayList for(inti=0;i if(sum sum=strings[i].length(); strings2.add(strings[i]); } } returnstrings2.get(strings2.size()-1); } publicstaticvoidmain(String[]args){ System.out.println("请输入字符串: "); Scannerscanner=newScanner(System.in); Stringdata=scanner.nextLine(); System.out.println(langWord(data)); } } /** *10、功能描述: 将字符串中的字母全部替换成字母的下一个字母,要是最后一位是z或Z则替换为a或A。 *输入: aBxyZ *输出: bCyzA */ publicclassMain010{ publicstaticvoidmain(String[]args){ Stringdata="aBxyZ"; System.out.println(newMain010().nextString(data)); } publicStringnextString(Stringdata){ char[]arr=data.toCharArray(); for(inti=0;i if(arr[i]>='a'&&arr[i]<='z'||arr[i]>='A' &&arr[i]<='Z'){ if(arr[i]=='z'||arr[i]=='Z'){ arr[i]=(char)(arr[i]-25); }elseif((arr[i]>='a'&&arr[i]<'z') ||(arr[i]>='A'&&arr[i]<'Z')){ arr[i]=(char)(arr[i]+1); } } } Stringres=String.valueOf(arr); returnres; } } /* *11、功能描述: 判断一个字符串中是否只含有相同的子字符串(子串长度>=2) 输入: abab 返回: true 输入: abcd 返回: false 分析: 每次取一个字符,然后判读剩下来的字符串中是否包含这一字符,直到最后 代码如下: (这里实现不是很好,有效率低下的嫌疑,其实不用list只用String也能做出来) */ 方法 publicclassDemo11{ publicstaticvoidmain(String[]args){ Stringdata="ababab"; booleanflag=newDemo11().checkString(data); System.out.println(flag); } publicbooleancheckString(Stringdata){ booleanflag=false; if(data.length()==2||data.length()==0||data.length()%2! =0){ returnflag; } intsubStrMaxLen=data.length()/2;//最长子字符串 for(inti=2;i<=subStrMaxLen;i++){ intsubStrNumber=data.length()/i;//分了多少子串 String[]temp=newString[subStrNumber]; intbegin=0; intend=i; //存放分的子串 for(intj=0;j temp[j]=data.substring(begin,end); begin+=i; end+=i; } //比较子串是否相等 for(intk=0;k if(temp[k].equals(temp[k+1])){ flag=true; }else{ flag=false; break; } } //跳出循环 if(flag==true){ break; } } returnflag; } } /* *12功能描述: 已知: yiersansiwuliuqibajiu分别对应123456789, 对一段只含有这几种字符串的字符串进行转换,如: 输入: yiersansan 输出: 1233 */ publicclassMain012{ publicstaticvoidmain(String[]args){ Stringsdata="yiersansan"; String[]s={"yi","er","san"}; String[]snu={"1","2","3"}; for(inti=0;i sdata=Replace(sdata,s[i],snu[i]); } System.out.println(sdata); } publicstaticStringReplace(Stringsource,StringoldString,String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 试试 参考
![提示](https://static.bdocx.com/images/bang_tan.gif)