《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 百道Python面試題實現(xiàn),搞定Python編程就靠它

百道Python面試題實現(xiàn),,搞定Python編程就靠它

2019-04-12

想要備戰(zhàn) Python 面試,,這兩個項目有千道 Python 問題與實現(xiàn)。


昨天機(jī)器之心介紹了 PHD 大牛的求職之路,,很多讀者感覺這位大牛太厲害了,,他的經(jīng)歷對我們幫助不大。對于一般的機(jī)器學(xué)習(xí)求職者而言,,最基礎(chǔ)的就是掌握 Python 編程技巧,,隨后才是相關(guān)算法或知識點的掌握。在這篇文章中,,我們將介紹一個 Python 練習(xí)題項目,,它從算法練習(xí)題到機(jī)試實戰(zhàn)題提供了眾多問題與解決代碼。


在春招之前,,我們就曾介紹過 GitHub 萬星的 ML 算法工程師面試指南,,它提供了完整的面試知識點、編程題及題解,、各科技公司的面試題錦等內(nèi)容,。讀者可查閱該項目了解機(jī)器學(xué)習(xí)面試需要準(zhǔn)備哪些知識。


項目地址:https://github.com/imhuay/Algorithm_Interview_Notes-Chinese


在這個 2W+ 收藏量的 GitHub 項目中,,作者前一部分主要介紹了機(jī)器學(xué)習(xí)及各子領(lǐng)域的知識點,。其中每一個知識點都只提供最核心的概念,,如果讀者遇到不熟悉的算法或者遇到知識漏洞,可以進(jìn)一步閱讀相關(guān)文獻(xiàn),。后一部分則重點介紹了怎樣搞定編程面試題,,包括各種數(shù)據(jù)結(jié)構(gòu)和排列組合相關(guān)的題目。


一般而言,,第一部分的基礎(chǔ)知識是長期積累的結(jié)果,,但對于后面的 Python 面試題,我們可以通過刷題快速提升解題水平,。這篇文章重點在于介紹兩個 Python 面試題項目,,它們提供了大量 Python 問題與解題代碼。


面試怎么做


在進(jìn)入 Python 題海之前,,我們還是先要了解了解面試流程,。面試形式和過程大致如下:


電話篩選(隱形的現(xiàn)場面試):這個過程一般由 HR 完成,如果是技術(shù)人員負(fù)責(zé),,這個過程一般都很短,。

技術(shù)面試:你將和實際開發(fā)人員進(jìn)行這一輪面試,在這期間他們會深入了解你的知識背景,。

技術(shù)評估/homework 編程/結(jié)對編程:一般而言,,如果一家公司的面試有結(jié)對編程環(huán)節(jié),那絕對是加分的,。homework 編程也能理解,,但絕大多數(shù)情況下這都是在浪費每個人的時間,也無法正確評估技術(shù)水平,。

最終面試:和團(tuán)隊其他成員見面,,如果這是一家小公司的話,這一輪面試你面對的可能是創(chuàng)始人(們),。

發(fā)放 offer,。


當(dāng)然,每家公司都會有所不同,,這只是你在找工作的過程中可能經(jīng)歷的大致過程,。一般技術(shù)面試考察的是我們的背景知識,而技術(shù)評估則需要語言解決實際問題了,。本文的這兩個項目,,可以讓你搞定公司的技術(shù)評估,當(dāng)然其實目前很多書籍與網(wǎng)站都在解決這個問題,,例如劍指 Offer 和 LeetCode 等等,。


Interview-code-practice-python


首先在第一個項目中,作者給出了 2017 校招真題、劍指 offer,、華為機(jī)試,、機(jī)試題和直通 BAT 算法題等各種 Python 實現(xiàn),它們共計 200 道左右,。


項目地址:https://github.com/leeguandong/Interview-code-practice-python


如下展示了劍指 offer 文件夾包含的實現(xiàn)文檔,,每一個問題都是單獨的 Python 文件:

微信圖片_20190412204722.jpg


整個項目有很多有意思的題目,例如「變態(tài)青蛙跳.py」包含的題目與題解代碼為:

微信圖片_20190412204743.jpg


「合唱團(tuán).py」內(nèi)的代碼如下:

微信圖片_20190412204812.jpg


The Algorithms - Python


第二個項目是更流行的一個 Python 代碼庫,,它目前有 2.4W+的星,。該項目實現(xiàn)的各種算法都是用純 Python 完成的,它希望更簡介地展示這些問題怎樣解決,,因此相比 Python 標(biāo)準(zhǔn)庫中實現(xiàn)的方法可能效率不那么高,。


項目地址:https://github.com/TheAlgorithms/Python


目前該項目展示的解決方案主要有:


排序

搜索

數(shù)學(xué)

算法分析

二元樹

數(shù)據(jù)結(jié)構(gòu)

圖像處理

動態(tài)規(guī)劃

線性代數(shù)

機(jī)器學(xué)習(xí)

哈希

……


這個項目的算法實現(xiàn)非常多,我們可以根據(jù)實際需要選擇具體的類別,,并查看給出的解決方案,。如果我們希望了解排序算法,那么選擇排序后我們大概能看到近 30 種不同的排序?qū)崿F(xiàn):

微信圖片_20190412204840.jpg


其中,,在算法入門第一課「bubble_sort.py」中,,該項目給出的冒泡排序解決方案為:

微信圖片_20190412204900.jpg


該項目提供的實現(xiàn)很多都非常底層,在「Math」中,,我們可以了解到如何實現(xiàn)絕對值求解,、求最大最小值等等,當(dāng)然也可以了解到矩陣乘法是如何實現(xiàn)的,。該項目其實對面試很有幫助,,雖然它并不是直接解決特定的某個問題,但是復(fù)現(xiàn)一般的 Python 函數(shù)或者基本問題對于理解 Python 很有幫助,。


綜合以上兩個 Python 實現(xiàn)項目,不論是解題技巧,,還是對 Python 的理解,,我們的實戰(zhàn)能力都會有很大的提升。就像理解神經(jīng)網(wǎng)絡(luò)最好的方法是用純 NumPy 實現(xiàn)一遍,,理解 Python 的最好方法即過一遍基本函數(shù)與結(jié)構(gòu),。有了充足的理解,再看看面試真題或在 LeetCode,、??途W(wǎng)就比較簡單了。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。