import Foundation let n = Int(readLine()!)! let password = readLine()! let numbers = CharacterSet(charactersIn: "0123456789") let lower_case = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyz") let upper_case = CharacterSet(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZ") let special_characters = CharacterSet(charactersIn: "!@#$%^&*()-+") func validatePassword(_ password: String) -> Int { var count: Int = 0 if !containsAtLeastOneCharacterFromSet(password, characterSet: numbers) { count += 1 } if !containsAtLeastOneCharacterFromSet(password, characterSet: lower_case) { count += 1 } if !containsAtLeastOneCharacterFromSet(password, characterSet: upper_case) { count += 1 } if !containsAtLeastOneCharacterFromSet(password, characterSet: special_characters) { count += 1 } let passCount = password.characters.count let remainingCharactersForPasswordToBeValid = 6 - passCount if remainingCharactersForPasswordToBeValid < 0 { return count } else { let finalCount = passCount + count if finalCount >= 6 { return count } else { return count + (6 - finalCount) } } } func containsAtLeastOneCharacterFromSet(_ text: String, characterSet: CharacterSet) -> Bool { let t = text.components(separatedBy: characterSet).joined(separator: "") return text != t } print(validatePassword(password))