華為校園招聘筆試算法題匯總_第1頁(yè)
華為校園招聘筆試算法題匯總_第2頁(yè)
華為校園招聘筆試算法題匯總_第3頁(yè)
華為校園招聘筆試算法題匯總_第4頁(yè)
華為校園招聘筆試算法題匯總_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、華為2014筆試算法題匯總1.通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母(az)組成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串過(guò)濾程序,若字符串中出現(xiàn)多個(gè)相同的字符,將非首次出現(xiàn)的字符過(guò)濾掉。比如字符串“abacacde過(guò)濾結(jié)果為“abcde0要求實(shí)現(xiàn)函數(shù):voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr);【輸入】pInputStr:輸入字符串lInputLen:輸入字符串長(zhǎng)度【輸出】pOutputStr:輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出示例輸入:“deefd

2、9;輸出:“def”輸入:“afafafaf”輸出:“af”輸入:“pppppppp”輸出:“p”main函數(shù)已經(jīng)隱藏,這里保留給用戶(hù)的測(cè)試入口,在這里測(cè)試你的實(shí)現(xiàn)函數(shù),可以調(diào)用printf打印輸出當(dāng)前你可以使用其他方法測(cè)試,只要保證最終程序能正確執(zhí)行即可,該函數(shù)實(shí)現(xiàn)可以任意修改,但是不要改變函數(shù)原型。一定要保證編譯運(yùn)行不受影響cppviewplaincopy/#include<iostream>#include<cassert>usingnamespacestd;boolg_flag26;voidstringFilter(constchar*pInputStr,lon

3、glInputLen,char*pOutputStr)assert(pInputStr!=NULL);inti=0;if(pInputStr=NULL|lInputLen<=1)return;constchar*p=pInputStr;while(*p!='0')if(g_flag(*p-'a')p+;elsepOutputStri+=*p;g_flag*p-'a'=1;p+;pOutputStri='0;intmain()memset(g_flag,0,sizeof(g_flag);charinput="abacacde

4、"char*output=newcharstrlen(input)+1;stringFilter(input,strlen(input),output);cout<<output<<endl;deleteoutput;return0;2.通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母(az)ffl成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。壓縮規(guī)則:1、僅壓縮連續(xù)重復(fù)出現(xiàn)的字符。比如字符串"abcbc”由于無(wú)連續(xù)重復(fù)字符,壓縮后的字符串還是"abcbc"。2、壓縮字段的格式為"字符重復(fù)的次

5、數(shù)十字符”。例如:字符串"xxxyyyyyyz”壓縮后就成為"3x6yz"。要求實(shí)現(xiàn)函數(shù):voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr);【輸入】pInputStr:輸入字符串lInputLen:輸入字符串長(zhǎng)度【輸出】pOutputStr:輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出示例輸入:“cccddeci輸出:“3c2de2C輸入:“adef輸出:“adef輸入:“pppppppp”輸出:“8p”cppviewp

6、laincopy/#include<iostream>#include<cassert>usingnamespacestd;voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr)constchar*p=pInputStr;intnum=1;inti=0;p+;while(*p!=NULL)while(*p=*(p-1)&&*p!=NULL)num+;P+;if(num>1)intsize=0;inttemp=num;while(num)/計(jì)算位數(shù)size+;num/=10;n

7、um=1;for(intj=size;j>0;j-)pOutputStri+j-1='0'+temp%10;temp/=10;i+=size;pOutputStri+=*(p-1);p+;elsepOutputStri+ = *(p-1);p+;pOutputStri='0;intmain()charinput="cccddecc"char*output=newcharstrlen(input)+1;stringZip(input,strlen(input),output);cout<<output<<endl;retu

8、rn0;3.通過(guò)鍵盤(pán)輸入100以?xún)?nèi)正整數(shù)的加、減運(yùn)算式,請(qǐng)編寫(xiě)一個(gè)程序輸出運(yùn)算結(jié)果字符串。輸入字符串的格式為:“操作數(shù)1運(yùn)算符操作數(shù)2",“操作數(shù)”與“運(yùn)算符”之間以一個(gè)空格隔開(kāi)。補(bǔ)充說(shuō)明:1、操作數(shù)為正整數(shù),不需要考慮計(jì)算結(jié)果溢出的情況。2、若輸入算式格式錯(cuò)誤,輸出結(jié)果為“0”。要求實(shí)現(xiàn)函數(shù):voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);【輸入】pInputStr:輸入字符串lInputLen:輸入字符串長(zhǎng)度【輸出】pOutputStr:輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);【注意】只需要

9、完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出示例輸入:“4+7”輸出:“11”輸入:“4-7”輸出:“-3”輸入:“9+7”輸出:“0”注:格式錯(cuò)誤cppviewplaincopy/#include<iostream>usingnamespacestd;voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr)constchar*input=pInputStr;char*output=pOutputStr;intsum=0;intoperator1=0;intoperator2=0;char*temp=n

10、ewchar5;char*ope=temp;while(*input!='')/獲得操作數(shù)1sum=sum*10+(*input+-'0');input+;operatori=sum;sum=0;while(*input!='')*temp+=*input+;input+;*temp='0'if(strlen(ope)>1)*output+='0'*output='0'return;sum=sum*10+(*input+-'0');operator2=sum;sum=0;swi

11、tch(*ope)case'+':itoa(operator1+operator2,pOutputStr,10);break;case'-':itoa(operator1-operator2,pOutputStr,10);break;default:*output+='0'*output='0'return;intmain()charinput="4-7"charoutput口=""arithmetic(input,strlen(input),output);cout<<outp

12、ut<<endl;return0;4輸入1-50個(gè)數(shù)字,求出最小數(shù)和最大數(shù)的和cppviewplaincopy/華為2014年機(jī)試題1:輸入1-50個(gè)數(shù)字,求出最小數(shù)和最大數(shù)的和/輸入以逗號(hào)隔開(kāi)#include<stdio.h>#defineN50voidsort(inta口,intn);intmain(void)charstr100;intaN=0;gets(str);/度點(diǎn)1:動(dòng)態(tài)的輸入1-50個(gè)整數(shù),不能確定個(gè)數(shù),只能用字符串輸入,然后分離出來(lái)inti=0;intj=0;intsign=1;while(stri!='0')if(stri!='

13、;,')/輸入時(shí)要在半角輸入if(stri='-')要點(diǎn):2:有負(fù)整數(shù)的輸入/i+;易錯(cuò)點(diǎn)1sign=-1;elseif(stri!='0')不用elsefl勺話(huà),負(fù)號(hào)也會(huì)減去'0'aj=aj*10+stri-'0'/要點(diǎn)3:輸入的可以是多位數(shù)i+;if(stri=','|stri='0')/這個(gè)判斷是在i自加以后aj=aj*sign;易錯(cuò)點(diǎn)2sign=1;/易錯(cuò)點(diǎn)3j+;/j就是a數(shù)組的個(gè)數(shù)范圍0到j(luò)-1sort(a,j);printf("Maxnumber+Minnumber=

14、%d",a0+aj-1);return0;voidsort(inta口,intn)/選擇排序inti,j;intk;inttemp;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(ak>aj)k=j;if(i!=k)temp=ak;ak=ai;ai=temp;for(i=0;i<n;i+)printf("%-5d",ai);puts("");備注說(shuō)明,非正文,實(shí)際使用可刪除如下部分。本內(nèi)容僅給予閱讀編輯指點(diǎn):1、本文件由微軟OFFICE辦公軟件編輯而成,同時(shí)支持WPS。2、文件可重新編輯整理。3、建議結(jié)合本公司和個(gè)人的實(shí)際情況進(jìn)行修正編輯。4、因編輯原因,部分文件文字有些微錯(cuò)誤的,請(qǐng)自行修正,并不影響本文閱讀。Note:itisnotthetext.Thefollowingpartscanbedeletedforactualuse.Thiscontentonlygivesreadingandeditinginstructions:1. ThisdocumentiseditedbyMicrosoftofficeofficesoftwareandsupportsWPS.2. Thefilescanbeedite

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論