IPetrov007

Ticket2

Apr 10th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Threading.Tasks;
  7.  
  8. namespace _04_WinningTicket
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. var haveValidSimbols = "[$@#^]{6}";
  15.  
  16. var tickets = Console.ReadLine()
  17. .Split(',')
  18. .Select(x => x.Trim())
  19. .ToArray();
  20. var leftPartOfTicket = "";
  21. var rightPatrOfTicket = "";
  22.  
  23. Regex regex = new Regex(haveValidSimbols);
  24.  
  25. foreach (var ticket in tickets)
  26. {
  27.  
  28. if (ticket.Length != 20)
  29. {
  30. Console.WriteLine("invalid ticket");
  31. }
  32. else
  33. {
  34. leftPartOfTicket = ticket.Substring(0, 10);
  35. rightPatrOfTicket = ticket.Substring(10, 10);
  36.  
  37. var isMatchLeft = regex.IsMatch(leftPartOfTicket);
  38. var isMatchRight = regex.IsMatch(rightPatrOfTicket);
  39.  
  40. var patternSimbols = "[@#$^]";
  41. Regex regexSimbols = new Regex(patternSimbols);
  42.  
  43. var leftMatch = regex.Match(leftPartOfTicket).Value;
  44. var rightMatch = regex.Match(rightPatrOfTicket).Value;
  45.  
  46. if (isMatchLeft && isMatchRight && leftMatch == rightMatch)
  47. {
  48. var counterFromLeft = regexSimbols.Matches(leftPartOfTicket).Count;
  49. var counterForomRight = regexSimbols.Matches(rightPatrOfTicket).Count;
  50.  
  51. var symbol = regexSimbols.Match(leftPartOfTicket).Value;
  52.  
  53. var counter = Math.Min(counterFromLeft, counterForomRight);
  54. if (counter == 10)
  55. {
  56. Console.WriteLine($"ticket \"{ ticket}\" - {counter}{symbol} Jackpot!");
  57. }
  58. else
  59. {
  60. Console.WriteLine($"ticket \"{ ticket}\" - {counter}{symbol}");
  61. }
  62. counter = 0;
  63. }
  64. else
  65. {
  66. Console.WriteLine($"ticket \"{ticket}\" - no match");
  67.  
  68. }
  69.  
  70. }
  71. }
  72. }
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment