Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Text.RegularExpressions;
- namespace _02.ArrayManipulator
- {
- class ArrayManipulator
- {
- static void Main(string[] args)
- {
- var input = Console.ReadLine().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
- foreach (var ticket in input)
- {
- if (ValidateTicket(ticket) == false)
- Console.WriteLine("invalid ticket");
- else
- {
- bool jackPot = TryJackpot(ticket).Item1;
- char symbol = TryJackpot(ticket).Item2;
- if (jackPot)
- Console.WriteLine($"ticket \"{ticket}\" - 10{symbol} Jackpot!");
- else
- {
- bool winningTick = TryWinningTicket(ticket).Item1;
- int moneyWon = TryWinningTicket(ticket).Item2;
- char currency = TryWinningTicket(ticket).Item3;
- if (winningTick)
- Console.WriteLine($"ticket \"{ ticket}\" - {moneyWon}{currency}");
- else
- Console.WriteLine($"ticket \"{ticket}\" - no match");
- }
- }
- }
- }
- private static bool ValidateTicket(string ticket)
- {
- if (ticket.Length == 20)
- return true;
- else
- return false;
- }
- private static Tuple<bool, char> TryJackpot(string ticket)
- {
- string symbolSearch = (@"@+|#+|(\$)+|\^+");
- Regex symbolPatt = new Regex(symbolSearch);
- Match match = symbolPatt.Match(ticket);
- string matchString = match.ToString();
- if (matchString.Length == 20)
- {
- char symbol = matchString[0];
- return Tuple.Create(true, symbol);
- }
- else
- return Tuple.Create(false, 'b');
- }
- private static Tuple<bool, int, char> TryWinningTicket(string ticket)
- {
- var firstHalf = ticket.Substring(0, 10);
- var secondHalf = ticket.Substring(10, 10);
- int firstMatchLengh = 0;
- int secondMatchLengh = 0;
- char firstMatchSymb = '-';
- char secondMatchSymb = '-';
- Regex charPattern = new Regex(@"(@+){6}|(#+){6}|((\$)+){6}|(\^+){6}");
- if (charPattern.IsMatch(firstHalf))
- {
- Match match = charPattern.Match(firstHalf);
- firstMatchLengh = match.Length;
- firstMatchSymb = match.ToString()[0];
- }
- else
- return Tuple.Create(false, 0, '-');
- if (charPattern.IsMatch(secondHalf))
- {
- Match match = charPattern.Match(secondHalf);
- secondMatchLengh = match.Length;
- secondMatchSymb = match.ToString()[0];
- }
- else
- return Tuple.Create(false, 0, '-');
- if (firstMatchSymb == secondMatchSymb && secondMatchLengh >= firstMatchLengh)
- return Tuple.Create(true, firstMatchLengh, firstMatchSymb);
- else if (firstMatchSymb == secondMatchSymb && firstMatchLengh > secondMatchLengh)
- return Tuple.Create(true, secondMatchLengh, firstMatchSymb);
- else
- return Tuple.Create(false, 0, '-');
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement