Guest User

04.WinningTicket

a guest
Oct 31st, 2017
205
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. namespace _04.WinningTicket
  5. {
  6.     class WinningTicket
  7.     {
  8.         static void Main()
  9.         {
  10.             Regex validTicketPattern = new Regex(@"^.{20}$");
  11.             Regex dswinnerPattern = new Regex(@"^.*#{6,9}.*$");
  12.             Regex doller = new Regex(@"^.*\${6,9}.*$");
  13.             Regex beakWinnerPattern = new Regex(@"^.*\^{6,9}.*$");
  14.             Regex klemoveWinnerPattern = new Regex(@"^.*@{6,9}.*$");
  15.  
  16.             string[] tickets = Console.ReadLine().Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
  17.  
  18.             foreach (string currentTicket in tickets)
  19.             {
  20.                 if (validTicketPattern.IsMatch(currentTicket))
  21.                 {
  22.                     string leftPart = currentTicket.Substring(0, 10);
  23.                     string rightPart = currentTicket.Substring(10);
  24.  
  25.                     int counter = 0;
  26.  
  27.                     if (currentTicket == new string('#', 20))
  28.                     {
  29.                         Console.WriteLine($"ticket \"{currentTicket}\" - 10# Jackpot!");
  30.                     }
  31.                     else if (currentTicket == new string('$', 20))
  32.                     {
  33.                         Console.WriteLine($"ticket \"{currentTicket}\" - 10$ Jackpot!");
  34.                     }
  35.                     else if (currentTicket == new string('^', 20))
  36.                     {
  37.                         Console.WriteLine($"ticket \"{currentTicket}\" - 10^ Jackpot!");
  38.                     }
  39.                     else if (currentTicket == new string('@', 20))
  40.                     {
  41.                         Console.WriteLine($"ticket \"{currentTicket}\" - 10@ Jackpot!");
  42.                     }
  43.                     else
  44.                     {
  45.                         if (dswinnerPattern.IsMatch(leftPart) && dswinnerPattern.IsMatch(rightPart))
  46.                         {
  47.                             counter = CountSymbols(leftPart, '#');
  48.                             Console.WriteLine($"ticket \"{currentTicket}\" - {counter}#");
  49.                         }
  50.                         else if (doller.IsMatch(leftPart) && doller.IsMatch(rightPart))
  51.                         {
  52.                             counter = CountSymbols(rightPart, '$');
  53.                             Console.WriteLine($"ticket \"{currentTicket}\" - {counter}$");
  54.                         }
  55.                         else if (beakWinnerPattern.IsMatch(leftPart) && beakWinnerPattern.IsMatch(rightPart))
  56.                         {
  57.                             counter = CountSymbols(rightPart, '^');
  58.                             Console.WriteLine($"ticket \"{currentTicket}\" - {counter}^");
  59.                         }
  60.                         else if (klemoveWinnerPattern.IsMatch(leftPart) && klemoveWinnerPattern.IsMatch(rightPart))
  61.                         {
  62.                             counter = CountSymbols(rightPart, '@');
  63.                             Console.WriteLine($"ticket \"{currentTicket}\" - {counter}@");
  64.                         }
  65.                         else
  66.                         {
  67.                             Console.WriteLine($"ticket \"{currentTicket}\" - no match");
  68.                         }
  69.                     }
  70.                 }
  71.                 else
  72.                 {
  73.                     Console.WriteLine("invalid ticket");
  74.                 }
  75.             }
  76.         }
  77.         static int CountSymbols(string rightPart, char specialSymbol)
  78.         {
  79.             int count = 0;
  80.             char[] symbols = rightPart.ToCharArray();
  81.  
  82.             for (int i = 0; i < symbols.Length; i++)
  83.             {
  84.                 if (symbols[i] == specialSymbol)
  85.                 {
  86.                     count++;
  87.                 }
  88.             }
  89.             return count;
  90.         }
  91.     }
  92. }
RAW Paste Data