Професионална програма
Loading...
KALOYAN_123 avatar KALOYAN_123 34 Точки

10. Winning Ticket (Python)

Здравейте колеги, имам проблем с задача 10. Winning Ticket, която ми дава 80/100. 
Проблемът е, че тестове: 6 и 7 не минават и вече пробваш всяка комбинация, за която мога да се сетя.
 

Условие

10.*Winning Ticket

Lottery is exciting. What is not, is checking a million tickets for winnings only by hand. So, you are given the task to create a program which automatically checks if a ticket is a winner.

You are given a collection of tickets separated by commas and spaces. You need to check every one of them if it has a winning combination of symbols.

A valid ticket should have exactly 20 characters. The winning symbols are '@', '#', '$' and '^'. But in order for a ticket to be a winner the symbol should uninterruptedly repeat for at least 6 times in both the tickets left half and the tickets right half.

For example, a valid winning ticket should be something like this:

"Cash$$$$$$Ca$$$$$$sh"

The left half "Cash$$$$$$" contains "$$$$$$", which is also contained in the tickets right half "Ca$$$$$$sh". A winning ticket should contain symbols repeating up to 10 times in both halves, which is considered a Jackpot (for example: "$$$$$$$$$$$$$$$$$$$$").

Input

The input will be read from the console. The input consists of a single line containing all tickets separated by commas and one or more white spaces in the format:

  • "{ticket}, {ticket}, … {ticket}"

Output

Print the result for every ticket in the order of their appearance, each on a separate line in the format:

  • Invalid ticket - "invalid ticket"
  • No match - "ticket "{ticket}" - no match"
  • Match with length 6 to 9 - "ticket "{ticket}" - {match length}{match symbol}"
  • Match with length 10 - "ticket "{ticket}" - {match length}{match symbol} Jackpot!"

Constrains

  • Number of tickets will be in range [0 … 100]

Examples

Input

Output

Cash$$$$$$Ca$$$$$$sh

ticket "Cash$$$$$$Ca$$$$$$sh" - 6$

$$$$$$$$$$$$$$$$$$$$, aabb  , th@@@@@@eemo@@@@@@ey

ticket "$$$$$$$$$$$$$$$$$$$$" - 10$ Jackpot!

invalid ticket

ticket "th@@@@@@eemo@@@@@@ey" - 6@

validticketnomatch:(

ticket "validticketnomatch:(" - no match


 

Моя код:

https://pastebin.com/5wg2AGKJ

Тагове:
0
Programming Fundamentals
Martinzca avatar Martinzca 7 Точки

Привет,

Ето моето решение - 100/100:

tickets = input().replace(" ", "")
tickets = tickets.split(',')
count = 0
symb = ''

def check_next(symbol, first, second):
    back = 6
    for i in range(7, 11):
        if (i * symbol) in first and (i * symbol) in second:
            back += 1
    return back

for ticket in tickets:
    if len(ticket) != 20:
        print('invalid ticket')
        continue
    left = ticket[0:int(len(ticket) / 2)]
    right = ticket[int(len(ticket) / 2):]
    if (6 * '@') in left and (6 * '@') in right:
        count = check_next('@', left, right)
        symb = '@'
    elif (6 * '$') in left and (6 * '$') in right:
        count = check_next('$', left, right)
        symb = '$'
    elif (6 * '#') in left and (6 * '#') in right:
        count = check_next('#', left, right)
        symb = '#'
    elif (6 * '^') in left and (6 * '^') in right:
        count = check_next('^', left, right)
        symb = '^'
    else:
        print(f'ticket "{ticket}" - no match')
        continue
        
    if count != 10:
        print(f'ticket "{ticket}" - {count}{symb}')
    else:
        print(f'ticket "{ticket}" - {count}{symb} Jackpot!')

 

0