【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】
在面試環節中,有一道題目也是考官們中意的一道題目:如果統計一段由字元和和空格組成的字元串中有多少個單詞?
其實,之是以問這個題目,考官的目的就是想了解一下你對狀态機了解多少。
(1) 題目分析
從題目上看,如果對一個字元串進行處理,那麼可以有下面幾種情形:初始狀态,字元狀态,空格狀态,結束狀态。那麼這幾種狀态之間應該怎麼遷移呢?
初始狀态: 如果輸入符号是空格,那麼進入空格狀态;如果是字元,那麼就進入字元狀态,同時單詞個數+1;如果是結束狀态,那麼直接傳回;
字元狀态:如果輸入符号是空格,那麼進入空格狀态;如果是字元,那麼什麼也不做;如果是結束,直接傳回;
空格狀态:如果輸入符号是空格,那麼什麼也不做;如果是字元,那麼進入字元狀态,同時單詞個數+1;如果結束狀态,那麼直接傳回。
(2)根據上面描述的狀态遷移過程,編寫對應的代碼
(3)編寫測試用例,驗證代碼是否編寫正确
總結:
1)狀态機是程式設計人員的基本功,它和另外一種方法回調函數注冊一樣,使我們在日常開發中經常用到的一種方法
2)狀态機是計算機網絡通信的重要内容,想要對tcp-ip協定棧加深了解的朋友尤其需要重點掌握