Advertisement
Danny_Berova

04.WinningTicket

Aug 14th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.30 KB | None | 0 0
  1.  
  2. namespace _04.WinningTicket
  3. {
  4.     using System;
  5.     using System.Collections.Generic;
  6.     using System.Linq;
  7.     using System.Text.RegularExpressions;
  8.  
  9.     public class Program
  10.     {
  11.         public static void Main()
  12.         {
  13.             var ticketsToCheck = Console.ReadLine()
  14.                 .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
  15.                 .Select(t => t.Trim())
  16.                 .ToArray();
  17.  
  18.             var winningTicket = false;
  19.  
  20.             foreach (var ticket in ticketsToCheck)
  21.             {
  22.                 if (ticket.Length != 20)
  23.                 {
  24.                     Console.WriteLine("invalid ticket");
  25.                     continue;
  26.                 }
  27.  
  28.                 var leftPart = new string(ticket.Take(10).ToArray());
  29.                 var rightPart = new string(ticket.Skip(10).ToArray());
  30.  
  31.                 winningTicket = false;
  32.  
  33.                 var winningSymbols = new string[] { "#", "@", "\\^", "\\$" };
  34.  
  35.                 foreach (var winningSymbol in winningSymbols)
  36.                 {
  37.                     var win = new Regex($"{winningSymbol}{{6,}}");
  38.                     var leftPartMatch = win.Match(leftPart);
  39.  
  40.                     if (leftPartMatch.Success)
  41.                     {
  42.                         var rigtParthMatch = win.Match(rightPart);
  43.  
  44.                         if (rigtParthMatch.Success)
  45.                         {
  46.                             winningTicket = true;
  47.  
  48.                             var leftWinLenght = leftPartMatch.Value.Length;
  49.                             var rightWinLenght = rigtParthMatch.Value.Length;
  50.  
  51.                             var jackpot = string.Empty;
  52.                             if (leftWinLenght == 10 && rightWinLenght == 10)
  53.                             {
  54.                                 jackpot = "Jackpot!";
  55.                             }
  56.                            
  57.                             Console.WriteLine($"ticket \"{ticket}\" - {Math.Min(leftWinLenght, rightWinLenght)}{winningSymbol.Trim('\\')} {jackpot}");
  58.  
  59.                             break;
  60.                         }
  61.                     }
  62.                 }
  63.                 if (!winningTicket)
  64.                 {
  65.                     Console.WriteLine($"ticket \"{ticket}\" - no match");
  66.                 }
  67.             }
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement