华为上机题目总结.docx
- 文档编号:7692762
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:25
- 大小:23.80KB
华为上机题目总结.docx
《华为上机题目总结.docx》由会员分享,可在线阅读,更多相关《华为上机题目总结.docx(25页珍藏版)》请在冰豆网上搜索。
华为上机题目总结
试题一:
输入字符串长度len1,字符串s1,字符串长度len2,字符串s2。
从后向前比较,以最短字符串为标准,输出不同的元素的个数.
例如:
输入:
s1=”1,3,5”len1=3s2=”2,4,1,7,5”len2=5
输出:
1
publicclassTest1{
publicstaticvoidmain(String[]args){
Stringstr1=”1,3,5”;
Stringstr2=”2,1,6,5”;
System.out.println(getDifferentNumber(str1,3,str2,4));
}
publicstaticintgetDifferentNumber(Stringstr1,intlen1,Stringstr2,intlen2)
{
intcount=0;
intlen=0;
len=(len1 len1: len2; Strings1[]=str1.split(”,”); Strings2[]=str2。 split(”,”); for(inti=0;i〈len;++i) { if(! (s2[len2-i-1]。 equals(s1[len1—i-1]))) { count++; } } returncount; } } 试题二: 约瑟夫环问题。 输入字符串长度,字符串,计数m。 从前往后计数,当数到m个元素时,m个元素出列,然后将出列的数字赋值给m.然后从下一个数计数循环,直到所有数字都出列,给定的数全部为大于0的数字。 输出出队队列。 publicclassJosephus_Seq{ publicstaticvoidmain(String[]args){ Josephusjo=newJosephus(newint[]{3,1,6,2,5}); jo。 ShowInfo(); System。 out。 println(); jo.doJosephus(3); } } classNode { publicintnum; publicNodenext; publicNode(inti) { this.num=i; this。 next=null; } } classJosephus { publicNodehead; publicJosephus(int[]data) { Nodep=newNode(data[0]); head=p; for(inti=1;i〈data。 length;++i) { p。 next=newNode(data[i]); p=p.next; } p.next=head; } publicvoiddoJosephus(ints) { Nodep,q=null; intstep=s; p=head; while(p。 next! =p) { for(inti=1;i { q=p; p=p。 next; } step=p。 num; System。 out。 println(p.num); q.next=p.next; p=p.next; } } } 试题三: 手机号码判断问题 publicclassPhoneNumberTest{ publicstaticvoidmain(String[]args){ PhoneNumberTestpt=newPhoneNumberTest(); intres=pt。 verifyMsisdn("8662923042663”); System.out。 println(res); } publicintverifyMsisdn(Stringnum) { intres=0; char[]ch=num.toCharArray(); if(ch.length〈13) return1; for(inti=0;i〈ch.length;++i) { if(! ('0'<=ch[i]&&ch[i]<=’9')) return2; } if(! ((ch[0]=='8')&&(ch[1]==’6’))) return3; returnres; } } 试题四: 使用数组和链表实现数据结构-栈。 //数组实现 publicclassMyStack{ privateObject[]obj=newObject[16]; privateintsize=0; publicbooleanisEmpty() { returnsize==0; } publicvoidclear() { for(inti=0;i〈size;i++) { obj[i]=null; } size=0; } publicintlentgh() { returnsize; } privatevoidresize() { Object[]temp=newObject[obj。 length*3/2+1]; for(inti=0;i { temp[i]=obj[i]; obj[i]=null; } obj=temp; } publicbooleanpush(Objectdata) { if(size>=obj。 length) { resize(); } obj[size++]=data; returntrue; } publicObjectpop() { if(size==0) { returnnull; } returnobj[——size]; } } 实例应用1: 将10进制的正整数转换为n进制 publicStringconversion(intnum,intn) { MyStackms=newMyStack(); Integerres=num; while(true) { ms.push(res%n); res=res/n; if(res==0) { break; } } StringBuffersb=newStringBuffer(); while((res=(Integer)ms.pop())! =null) { sb.append(res); } returnsb。 toString(); } 实例应用2: 判断括号的匹配 publicbooleanisMatch(Stringstr){ MyStack char[]arr=str.toCharArray(); for(charc: arr){ Charactertemp=myStack.pop(); //栈为空时只将c入栈 if(temp==null){ myStack.push(c); } //配对时c不入栈 elseif(temp==’[’&&c==']’){ } //配对时c不入栈 elseif(temp=='('&&c==')'){ } //不配对时c入栈 else{ myStack.push(temp); myStack.push(c); } } returnmyStack。 isEmpty(); } //链表实现 publicclassMyLinkedStack{ privateLinkedNodetop; privateintsize; publicMyLinkedStack() { top=null; size=0; } publicbooleanisEmpty() { returnsize==0; } publicvoidclear() { top=null; size=0; } publicintlength() { returnsize; } publicbooleanpush(Objecto) { LinkedNodeln=newLinkedNode(); ln。 data=o; ln.pre=top; top=ln; size++; returntrue; } publicObjectpop() { if(top! =null) { LinkedNodeln=top; top=top.pre; size——; returnln。 data; } returnnull; } } classLinkedNode { publicObjectdata; publicLinkedNodepre; } 试题五: 简单四则运算 publicclassOperate{ publicstaticvoidmain(String[]args){ Stringexp="1+3*4+6/2”; System.out。 println(calculate(exp)); } publicstaticintcalculate(Stringexp) { char[]exps=exp.toCharArray(); int[]num=newint[20]; int[]str=newint[20]; intk2; intk1=k2=0; for(inti=0;i { if(exps[i]>='0’&&exps[i]〈='9’) { num[k1++]=exps[i]—’0'; } if(exps[i]==’—'||exps[i]==’+’) { str[k2++]=exps[i]; } if(exps[i]=='*’) { num[k1-1]=num[k1-1]*(exps[i+1]—’0'); i++; } if(exps[i]=='/') { num[k1—1]=num[k1-1]/(exps[i+1]—’0'); i++; } } for(inti=0;i〈num。 length;i++) { System。 out。 print(num[i]); } System。 out.println(); for(inti=0;i length;i++) { System.out。 print(str[i]); } System.out。 println(); inttemp=num[0]; intj=0; while(j〈k2) { if(str[j]=='—’) temp=temp—num[j+1]; elseif(str[j]=='+') temp=temp+num[j+1]; j++; } returntemp; } } 试题六: 判断回文字符 publicclassHuiwenArrayTest{ publicstaticvoidmain(String[]args){ int[]a=newint[]{1,2,2,1}; System.out.println(HuiwenArrayTest。 judge(a)); } publicstaticbooleanjudge(int[]array) { for(inti=0;i length/2;i++) { if(array[i]==array[array。 length—1-i]) { continue; } else returnfalse; } returntrue; } } 试题七: 求两个数组的异集(A和B的交集) publicstaticvoidstart(Integer[]a,Integer[]b) { List〈Integer>list=newArrayList〈Integer>();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 上机 题目 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)