private Dictionary <PasswordPolicyRequirement, string> ParseInput(string[] input) { var passwordData = new Dictionary <PasswordPolicyRequirement, string>(); var passwordRegex = @"(\d+)-(\d+) (\w): (\w+)"; foreach (var line in input) { var regexMatch = Regex.Match(line, passwordRegex); var requirements = new PasswordPolicyRequirement(); var password = ""; if (regexMatch.Success) { requirements.MinimumAppearances = int.Parse(regexMatch.Groups[1].Value); requirements.MaximumApperances = int.Parse(regexMatch.Groups[2].Value); requirements.RequiredLetter = regexMatch.Groups[3].Value; password = regexMatch.Groups[4].Value; } passwordData.Add(requirements, password); } return(passwordData); }
private bool TestPassword(PasswordPolicyRequirement Requirement, string Password) { //var occurance = LetterCount(Requirement.RequiredLetter, Password); var occurance = Password.Count(Requirement.RequiredLetter); if (occurance >= Requirement.MinimumAppearances && occurance <= Requirement.MaximumApperances) { return(true); } return(false); }
private bool TestPassword(PasswordPolicyRequirement Requirement, string Password) { var occuranceCount = 0; if (Password.Substring(Requirement.MinimumAppearances, 1) == Requirement.RequiredLetter) { occuranceCount++; } if (Password.Substring(Requirement.MaximumApperances, 1) == Requirement.RequiredLetter) { occuranceCount++; } if (occuranceCount == 1) { return(true); } return(false); }