Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Text.RegularExpressions;
  7.  
  8. namespace _02.ArrayManipulator
  9. {
  10. class ArrayManipulator
  11. {
  12. static void Main(string[] args)
  13. {
  14. var input = Console.ReadLine().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
  15. foreach (var ticket in input)
  16. {
  17. if (ValidateTicket(ticket) == false)
  18. Console.WriteLine("invalid ticket");
  19. else
  20. {
  21. bool jackPot = TryJackpot(ticket).Item1;
  22. char symbol = TryJackpot(ticket).Item2;
  23. if (jackPot)
  24. Console.WriteLine($"ticket \"{ticket}\" - 10{symbol} Jackpot!");
  25. else
  26. {
  27. bool winningTick = TryWinningTicket(ticket).Item1;
  28. int moneyWon = TryWinningTicket(ticket).Item2;
  29. char currency = TryWinningTicket(ticket).Item3;
  30. if (winningTick)
  31. Console.WriteLine($"ticket \"{ ticket}\" - {moneyWon}{currency}");
  32.  
  33. else
  34. Console.WriteLine($"ticket \"{ticket}\" - no match");
  35. }
  36. }
  37. }
  38. }
  39. private static bool ValidateTicket(string ticket)
  40. {
  41. if (ticket.Length == 20)
  42. return true;
  43. else
  44. return false;
  45. }
  46. private static Tuple<bool, char> TryJackpot(string ticket)
  47. {
  48. string symbolSearch = (@"@+|#+|(\$)+|\^+");
  49. Regex symbolPatt = new Regex(symbolSearch);
  50. Match match = symbolPatt.Match(ticket);
  51. string matchString = match.ToString();
  52. if (matchString.Length == 20)
  53. {
  54. char symbol = matchString[0];
  55. return Tuple.Create(true, symbol);
  56. }
  57. else
  58. return Tuple.Create(false, 'b');
  59. }
  60.  
  61. private static Tuple<bool, int, char> TryWinningTicket(string ticket)
  62. {
  63. var firstHalf = ticket.Substring(0, 10);
  64. var secondHalf = ticket.Substring(10, 10);
  65. int firstMatchLengh = 0;
  66. int secondMatchLengh = 0;
  67. char firstMatchSymb = '-';
  68. char secondMatchSymb = '-';
  69. Regex charPattern = new Regex(@"(@+){6}|(#+){6}|((\$)+){6}|(\^+){6}");
  70. if (charPattern.IsMatch(firstHalf))
  71. {
  72. Match match = charPattern.Match(firstHalf);
  73. firstMatchLengh = match.Length;
  74. firstMatchSymb = match.ToString()[0];
  75. }
  76. else
  77. return Tuple.Create(false, 0, '-');
  78. if (charPattern.IsMatch(secondHalf))
  79. {
  80. Match match = charPattern.Match(secondHalf);
  81. secondMatchLengh = match.Length;
  82. secondMatchSymb = match.ToString()[0];
  83.  
  84. }
  85. else
  86. return Tuple.Create(false, 0, '-');
  87.  
  88.  
  89. if (firstMatchSymb == secondMatchSymb && secondMatchLengh >= firstMatchLengh)
  90. return Tuple.Create(true, firstMatchLengh, firstMatchSymb);
  91.  
  92. else if (firstMatchSymb == secondMatchSymb && firstMatchLengh > secondMatchLengh)
  93. return Tuple.Create(true, secondMatchLengh, firstMatchSymb);
  94.  
  95. else
  96. return Tuple.Create(false, 0, '-');
  97. }
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement