題目連結

https://zerojudge.tw/ShowProblem?problemid=a011

https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=435

參考文章

X

本題要點

一開始是用 split(” ”) 遇到空格就拆開,新增至陣列,這方式會遇到一個問題,萬一輸入是 「AD!!CF」 或是 「AD !!」 都會出錯

我用 ASCII code 判斷現在是 英文字狀態(state = 1) 還是 非英文字的狀態(state = 0)

簡單來說,先預設 state = 0 如果讀取到英文字就將 state 切換成 1 代表開始讀取一個單字

接下來要找他結尾,讀取到英文字以外時就可以斷定現在讀完了一個單字 (word += 1),並且將 state 改為 0

重複循環直到結束

最後,如果他是以英文字結尾,這樣我們無法讀取到英文字以外的字元,words 會少 1,所以我加了判斷式,如果最後一字元是英文結尾就將words+1。

我很意外 ZJ 這樣可以 AC 我腦袋還有幾種情況需要預防,但抱著僥倖心態送測,過了就…不多打了XD

參考解答

解一:ASCII

截圖 2024-06-20 下午5.55.11.png