序
記得剛開始學寫程式的時候,最常參考的就是雜誌。裡面會刊載讀者寫的程式碼,我也很喜歡自己動手輸入那些程式碼。雖然這類程式雜誌已經停刊了,但程式設計的競賽卻成為一大話題。這類競賽比的是看誰能最快解出網路上的題目。參與這類比賽可解決「剛開始學寫程式,卻不知道該寫什麼」的問題,比起不知道學習目標為何物,這麼做更能保有學習動力。
話說回來,沒有基本知識是無法解決這類題目的,就算題目有解答,也很難看得懂。所以本書要介紹解題常用的基本演算法,介紹相對簡單的題目與解答的程式碼。Part 3的程式碼比實務的程式短很多,請大家先自己寫寫看,確認一下執行結果,再輸入本書介紹的程式碼,確認程式的執行流程與處理速度。除了處理速度之外,評價程式寫得好不好的標準還有很多,例如程式碼是否簡潔,是否容易維護,都是評價的標準之一。思考有沒有更好的寫法也是解題的樂趣之一,就算答案相同,程式的寫法也有很多種。
即使是相同的程式,只要是以不同的程式語言撰寫,難易度就會因為程式的特性而改變。本書除了介紹Python的程式碼,Part3的部分也提供Ruby或JavaScript的程式碼可供下載,有機會的話,請大家試著以其他的程式語言寫寫看,一定能找到不同的解題樂趣。