Професионална програма
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
Poddy avatar Poddy 15 Точки

Здравейте!
И аз имам проблем със същата задача, но го докарах до 60. Вероятно ще се изкажа много некомпетентно, но това, което ми прави впечатление е следното:

1. ред 29 и ред 30

if 5 < v < 11:
    if y == 10:
първо проверявате броя повтарящи се елементи в първата половина, а после проверявате дали повтарящите се елементи във втората половина са 10 и обявявате джакпот, но броя елементи в първата половина може да не е 10.

2. Определяте какъв е символа в билета и го прибавяте в речника, след което проверявате броя на символите, които са в речника, но как си гарантирате, че тези символи са последователни? Техният общ брой може да е над 6, но да не са един след друг и тогава билета не е печеливш. Например 1###2##3##. В този случай броят на # е общо 7, но те не са последователни.

Може да ползвате директно метода .strip(), вместо .lstrip() и .rstrip(). Той ще премахне празните места и от двете страни на стринга.

0
21/07/2020 00:18:28
lozanov95 avatar lozanov95 0 Точки

Здравейте,

Аз най-после успях да я реша със 100/100. Ето го и решението: https://pastebin.com/NjDdGqVQ

0
Poddy avatar Poddy 15 Точки

Здравейте!

Аз го докарах до 90. Ще разгледам вашия код подробно и се надявам да ми помогне.

0
14/08/2020 17:55:28