Swift — Udemy : HWS Swift Coding Challenges 10(Vowels and Consonants)

YC
3 min readOct 31, 2017

--

這是一堂在Udemy上面開的課程,以下是課程網址: HWS Swift Coding Challenges。這堂課主要是讓有Swift相關經驗的朋友來學習,測試自己並提高編程技能。
我會在這篇文章中,記錄下對於Challenges(String主題)中的理解、參考資料與答案。

10.寫一個function,輸入一字串,回傳一組 tuple ,當中包括Vowel的數目與Consonants的數目。如 “A E I O U” 為Vowels,“B, C, D, F, G, H, J, K, L, M, N, P, Q, R, S, T, V, W, X, Y, Z”字母為Consonants。本題為 case-sensitive。

寫前先看了導師的Hints,當中最重要的有說到要注意字母的大小寫,如“A”不是一個vowel。

解法1:個人解法

解法1:先input、vowel、consonant轉換為小字與字元。然後用filter跟contains來作過濾,最後用count來回傳結果。

解法2a:導師解法
解法2b:導師解法

解法2a、b:兩種解法很類似只是2a使用CharacterSet與rangeOfCharacter(),而2b可以不用CharacterSet,而是只用contains來達到目的。

rangeOfCharacter(from:)
Finds and returns the range in the receiver of the first character from a given character set.

rangeOfCharacter()的參數類型為CharacterSet,我們可以輸入想要的字元,再由原字串中進行尋找,若字串有在字元集合中的字元,則回傳由第一個被找到及之後的所有字元。

參考文章:Apple官方文件rangeOfCharacter(from:)及stackoverflow

--

--

YC
YC

Written by YC

提供更精確的技術內容為目標,另創立「程式愛好者」專頁。首席軟體工程師,專研後端技術、物件導向、軟體架構。

No responses yet