Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
1,112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.85 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4. using System.Text.RegularExpressions;
  5.  
  6. public class WinningTicket
  7. {
  8.     public static void Main()
  9.     {
  10.         var result = new StringBuilder();
  11.  
  12.         var tickets = Console.ReadLine()
  13.             .Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
  14.  
  15.         var pattern = @"(\@{6,}|\${6,}|\^{6,}|\#{6,})";
  16.         var reg = new Regex(pattern);
  17.  
  18.         foreach (var ticket in tickets)
  19.         {
  20.             if (ticket.Length != 20)
  21.             {
  22.                 result.Append($"invalid ticket{Environment.NewLine}");
  23.                 continue;
  24.             }
  25.  
  26.             var leftMatch = reg.Match(ticket.Substring(0, 10));
  27.             var rightMatch = reg.Match(ticket.Substring(10));
  28.             var minLen = Math.Min(leftMatch.Length, rightMatch.Length);
  29.  
  30.             if (!leftMatch.Success || !rightMatch.Success)
  31.             {
  32.                 result.Append($"ticket \"{ ticket}\" - no match{Environment.NewLine}");
  33.                 continue;
  34.             }
  35.  
  36.             var leftPart = leftMatch.Value.Substring(0, minLen);
  37.             var rightPart = rightMatch.Value.Substring(0, minLen);
  38.  
  39.             if (leftPart.Equals(rightPart))
  40.             {
  41.                 if (leftPart.Length == 10)
  42.                 {
  43.                     result.Append($"ticket \"{ ticket}\" - {minLen}{leftPart.Substring(0, 1)} Jackpot!{Environment.NewLine}");
  44.                 }
  45.                 else
  46.                 {
  47.                     result.Append($"ticket \"{ ticket}\" - {minLen}{leftPart.Substring(0, 1)}{Environment.NewLine}");
  48.                 }                            
  49.             }
  50.             else
  51.             {
  52.                 result.Append($"ticket \"{ ticket}\" - no match{Environment.NewLine}");
  53.             }
  54.         }
  55.  
  56.         Console.Write(result.ToString());
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement