天天看點

一步一步寫算法(之單詞統計)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。  聯系信箱:feixiaoxing @163.com】

    在面試環節中,有一道題目也是考官們中意的一道題目:如果統計一段由字元和和空格組成的字元串中有多少個單詞?

    其實,之是以問這個題目,考官的目的就是想了解一下你對狀态機了解多少。

    (1) 題目分析

    從題目上看,如果對一個字元串進行處理,那麼可以有下面幾種情形:初始狀态,字元狀态,空格狀态,結束狀态。那麼這幾種狀态之間應該怎麼遷移呢?

    初始狀态: 如果輸入符号是空格,那麼進入空格狀态;如果是字元,那麼就進入字元狀态,同時單詞個數+1;如果是結束狀态,那麼直接傳回;

    字元狀态:如果輸入符号是空格,那麼進入空格狀态;如果是字元,那麼什麼也不做;如果是結束,直接傳回;

    空格狀态:如果輸入符号是空格,那麼什麼也不做;如果是字元,那麼進入字元狀态,同時單詞個數+1;如果結束狀态,那麼直接傳回。

    (2)根據上面描述的狀态遷移過程,編寫對應的代碼

    (3)編寫測試用例,驗證代碼是否編寫正确

總結:

    1)狀态機是程式設計人員的基本功,它和另外一種方法回調函數注冊一樣,使我們在日常開發中經常用到的一種方法

    2)狀态機是計算機網絡通信的重要内容,想要對tcp-ip協定棧加深了解的朋友尤其需要重點掌握

繼續閱讀