Loading...
e_karov avatar e_karov 1 Точки

Здравей, 

мисля, че проблемът е че  не проверяваш  правилно за случая с нествани скоби. Провери на първия нулев тест, като добавиш вложени скоби, че резултатът въпреки това е "BALANCED".

 

 

0
simasim avatar simasim 5 Точки

UNBALANCED e

0
e_karov avatar e_karov 1 Точки

А промени ли в началото броя редове, които се четат от 8 на 10, колкото са с добавените скоби? Тогава резултатът е "BALANCED", въпреки вложените скоби. Иначе не се прочитат всички редове и просто броя отварящи скоби не съвпада с броя затварящи, а не се отчита постъпването на две скоби от един вид последователно. Мисля, че ако сетваш стойността на булевата проверка при получаване на поредната скоба за да следиш при следващата дали не е от същия вид ще сработи, защото ти сега ги сетваш на "true" непосредствено преди проверката и те де факто, не проверават това което се очаква от тях.

Дано да успях да го формулирам що годе разбираемо :)

Успех!

0
Iwangaidarow avatar Iwangaidarow 0 Точки

Здравейте,

при мен тест номер 5 гърми.Не мога да се сетя за частния случей, който пропускам. Ако може някой да подскаже кой от случеите  изпускам без да дава код, ще съм благодарен.

Ето го и кода:

https://pastebin.com/uYYtGXhr

0
Krisibanov avatar Krisibanov 5 Точки

Виж моето решение https://pastebin.com/zA0TB3wb

0
marina.kolova avatar marina.kolova 34 Точки

Ето ви още едно решение с малко обяснения. Опитах се да го опростя максимално - кодът, не обяснението към него. :D

https://pastebin.com/h25t6053

Имам булева, която първоначално е false - ей така, за всеки случай.

Броим отварящите скоби и броим затварящите. Като при всяко преброяване на затваряща, проверявам дали някъде преди нея е имало отваряща. Т.е. ако затварящите станат 1, трябва и отварящите преди това да са 1, за да е балансирано и тогава сетваме булевата на true. Ако отварящите преди това са били 2 или повече или изобщо е нямало и са си 0, тогава няма да се влезе в тази проверка. Ако обаче влезе в проверката значи са 1 на 1 и освен, че сетваме булевата на true, нулираме броячите, за да може следващия път да работят по същия начин. Щом в момента има баланс, реално няма значение колко точно са скобите общо досега, важно е какво става от тук натам.

Имам си и else проверка, защото ако се окаже, че при първа затваряща и съответно нулиране на броячите, булевата се е сетнала на true, а при втора затваряща условието за true вече не е изпълнено, булевата трябва пак да стане false. Тук също връщаме броячите на 0, за да не може да излезе, че е балансирано при ( ( ) ) .

Извън цикъла имам същата проверка - дали броят отварящи и затварящи скоби е равен, пак по същата логика - за да може ако веднъж е станало true, но повече не е влизало в горните проверки, а всъщност вече не е true, да се оправи. Например, ако след постигане на баланс веднъж, е имало още една отваряща скоба, без да има затваряща след нея (тогава изобщо не се стига до самите проверки вътре в цикъла).

И накрая според true или false, си принтирам резултата.

0
06/02/2019 01:20:28
simasim avatar simasim 5 Точки

Супер, благодаря, макар че и аз вече бях решила задачата.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.