private const int UniqueChars = 4;
private const int MaxSequenceNumber = 3;
private static void Main(string[] args)
var pwds = new[] { "986522", "321795", "010118", "401239", "987332", "982123" };
foreach (var pwd in pwds)
Console.WriteLine($"{pwd} = {IsValid(pwd)}");
private static bool IsValid(string password)
if (password.Select(x => Convert.ToInt32(x)).Distinct().Count() < UniqueChars)
for (int i = 0; i < password.Length - 1; i++)
if (Convert.ToInt32(password[i].ToString()) + 1 == Convert.ToInt32(password[i + 1].ToString()) || Convert.ToInt32(password[i].ToString()) - 1 == Convert.ToInt32(password[i + 1].ToString()))
if (currentSequence == MaxSequenceNumber - 1)