整數(shù)倍是什么意思(整數(shù)是什么概念)
就像網(wǎng)上說的一樣,一般進入互聯(lián)網(wǎng)大廠,算法考核是必備的。華為算是中國軟件公司中非常厲害的存在了。因此華為的算法面試題對于我們來說,有一定的參考價值。這篇文章,是我日常學(xué)習(xí)以及收集資料時,總結(jié)的一些華為的算法面試題目,這里和大家分享一下,希望對感興趣的小伙伴有一定的幫助。

華為算法面試
題目一:計算字符串最后一個單詞的長度
題目描述:輸入一行字符串,非空,長度小于5000,單詞之間以空格隔開。求最后一個單子的長度。例如:Hello World則輸出長度為5。
這道題目的整體難度不是很難,相信很多小伙伴都能做出來。這里我和大家分享一下其中的一種解法。用Java代碼的實現(xiàn)方式如下圖所示:

計算字符串最后一個單詞的長度
題目二:求字符串中某個字符出現(xiàn)的次數(shù)
題目描述:寫出一個程序,接受一個由字母和數(shù)字組成的字符串,和一個字符,然后輸出輸入字符串中含有該字符的個數(shù)。不區(qū)分大小寫。
這道題目難度也不是很難,用來求取字符串出現(xiàn)的次數(shù)。相比第一道題目,這道題目可能代碼會長一些,但是其實算法思路不是很難的。用Java代碼實現(xiàn)的代碼如下:

求字符串中某個字符出現(xiàn)的次數(shù)
題目三:字符串拆分
題目描述:連續(xù)輸入字符串,請按長度為8拆分每個字符串后輸出到新的字符串?dāng)?shù)組;長度不是8整數(shù)倍的字符串請在后面補數(shù)字0,空字符串不處理。
本道題目主要是做字符串拆分,將一個字符串按照8的倍數(shù)來拆分。不足的按照后面補0來處理。相信很多小伙伴都有思路了吧。首先判斷字符串是否是8的倍數(shù),然后不是的話,補足0即可,緊接著按照8的倍數(shù)進行拆分即可。Java實現(xiàn)代碼如下:

字符串拆分題目
題目四:求一個整數(shù)的所有質(zhì)因子
題目描述:輸入一個正整數(shù),按照從小到大的順序輸出它的所有質(zhì)因子(如180的質(zhì)因子為2 2 3 3 5 ),要求最后一個數(shù)后面也要有空格。
本道題目的重點在于理解質(zhì)因子是什么意思,質(zhì)因子(或質(zhì)因數(shù))在數(shù)論里是指能整除給定正整數(shù)的質(zhì)數(shù)。如果還不懂的小伙伴可以查看百度百科哦。只要明白了質(zhì)因子的概念,那么本道題目也就沒有什么難度了。廢話不說,直接上代碼:

求一個整數(shù)的所有質(zhì)因子
題目五:數(shù)據(jù)表相同索引值的求個運算
題目描述:數(shù)據(jù)表記錄包含表索引和數(shù)值(int范圍的整數(shù)),請對表索引相同的記錄進行合并,即將相同索引的數(shù)值進行求和運算,輸出按照key值升序進行 * 輸出。
這道題目主要用于判斷索引值相同的值的求和運算,在一些語言中,已經(jīng)有了實現(xiàn)方式,這里我們也可以根據(jù)自己的思路進行代碼編寫,實現(xiàn)這個方法。本道題目的Java代碼實現(xiàn)如下:

數(shù)據(jù)表相同索引值的求和運算
上面的代碼介紹了一些華為面試題中的字符串以及數(shù)值的算法題目。這些題目其實整體難度不大,但是卻可以通過代碼優(yōu)化,考查面試中的算法能力。由于篇幅原因,這里其他的一些算法,就不再分享了,感興趣的小伙伴,可以私信或者關(guān)注我。我會把源代碼分享出來,當(dāng)然還有其他的一些題目也在其中。
其他題目還包括但不限于:
提取不重復(fù)的數(shù)字;字符串個數(shù)統(tǒng)計;數(shù)字顛倒;字符串翻轉(zhuǎn);句子逆序;字符串的連接最長路徑查詢;求int型正整數(shù)在內(nèi)存中存儲時1的個數(shù)。
希望通過一些算法題目的分享和學(xué)習(xí),提升自己的算法水平,同時也可以通過算法編程,強化自己的編程能力。當(dāng)然,這些算法題目,盡量不要復(fù)制粘貼,有條件的話,還是自己手動驗證一下,才會有更好的效果。