利用 Set 排除沒有包含的字串
1.從參數拿到的 wrongLocationChars
字元陣列都放到 Set 裡面
if let wrongLocationChars = wrongLocationChars {
wrongLocationSet = CharSet()
for (_, chars) in wrongLocationChars {
wrongLocationSet = wrongLocationSet.union(CharSet(chars))
}
}
這邊用到了 union
把所有蒐集到的位置錯誤的字元陣列都聯集起來
2.遞迴終結條件前,檢查拼字後,拿一開始搜集的 Set 判斷是不是該字串的 Subset
這邊用到了 isSubset
檢查這些字元是否都在剛剛檢查完拼字的字串裡面
if checkTextValid(text: text) && wrongLocationSet.isSubset(of: text) {
allText.append(String(text))
}
完成這小小的改動又可以少很多組的組合了^^
程式碼
利用 UITextChecker 玩 WORDLE