Софтуерно Инженерство
Loading...
+ Нов въпрос
simonradev avatar simonradev 67 Точки

04. Winning Ticket

Здравейте, имам проблем с четвърта задача от следния изпит - https://judge.softuni.bg/Contests/Practice/Index/377#1. Дава ми 80/100 точки и пробвах да направя и втора имплементация, която също ми дава 80/100. Явно пропусам нещо, но не мога да забележа какво. Ще ви бъда много благодарен ако помогнете малко.

Първи опит -> http://pastebin.com/uJYBBpJT.

Втори опит -> http://pastebin.com/KWMyMvnn.

 

0
Programming Fundamentals
StefkaVasileva avatar StefkaVasileva 259 Точки
Best Answer

Здравей, доста я мъчих тази задачка аз. Проблема е когато имаш например: th@@@@@@@emo@@@@@@ey имаш от ляво 7, а от дясно 6, не принтираш нищо, а отговора трябва да е 6@. Според мен доста неща не са споменати в условието и докато се досетя за тях. 

0
10/02/2017 13:56:37
simonradev avatar simonradev 67 Точки

Не трябва ли да има равен брой и от двете страни!?

0
StefkaVasileva avatar StefkaVasileva 259 Точки

И аз така си мислех, никъде в условието не беше спомента нещо по този въпрос. 

0
simonradev avatar simonradev 67 Точки

То пише, че трябва да има еднакъв брой и от двете страни, аз затова не съм мислил за други варианти.

1
valkis_s avatar valkis_s 7 Точки

За първият код добавих проверка и за втората половина на winningTicket:

                if (!winningTicket.IsMatch(leftHalf) || !winningTicket.IsMatch(rightHalf))
                {
                    result[currentTicket] = $"ticket \"{ticket}\" - no match";

                    continue;
                }

И приверка за различна дължина:

                if (leftHalf[0] == rightHalf[0] && leftHalf.Length <= rightHalf.Length)
                {
                    result[currentTicket] = $"ticket \"{ticket}\" - {leftHalf.Length}{leftHalf[0]}";
                }
                else if (leftHalf[0] == rightHalf[0] && leftHalf.Length > rightHalf.Length)
                {
                    result[currentTicket] = $"ticket \"{ticket}\" - {rightHalf.Length}{leftHalf[0]}";
                }

 

Мина 100/100 точки

1
FireHead avatar FireHead 44 Точки

Имаш ли представа защо не ми дава 100/100.

Все си мисля, че съм взел в предвид и условията които коментирате по-горе...

 

http://pastebin.com/4YCMdXcA

0
Backo_vd avatar Backo_vd 15 Точки

Пробвай с $$$$$$$^$$$$$^$$$$$$ или ^$$$$$$$$$$$$$$$$$$^ . Трябва да ти върне 6$ за първото и 9$ за второто, а при теб връща "no match". Трябва да вземеш в предвид, че може да присъства повече от един специален символ на билета.

0