Професионална програма
Loading...
+ Нов въпрос
BorislavNikolov99 avatar BorislavNikolov99 3 Точки

Problem 8. Balanced Parentheses

Problem 8. Balanced Parentheses   

https://softuni.bg/trainings/resources/officedocument/37032/exercise-problem-descriptions-csharp-advanced-january-2019/2243 

Колеги имам проблем с тази задача от C# Advanced дава 75/100 а идея си нямам защо някой може ли да помогне 

https://pastebin.com/AfcGGbvd

Тагове:
0
C# Advanced
MartinBG avatar MartinBG 2783 Точки

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

Ето едно примерно решение на Java, което използва този алгоритъм - ако ти хареса като идея, лесно може да го "преведеш" и на C#.

1
20/01/2019 01:19:21
Galin.P87 avatar Galin.P87 44 Точки

BorislavNikolov99, алгоритъма ти не отчита случаи тип ()[], които също са валиден случай. Затова ти бягат последните 25 точки.

1
20/01/2019 20:15:35
Joro_Paspalev avatar Joro_Paspalev 20 Точки

Здравейте, 

и аз като BorislavNikolov99 първоначално реших да разделя входните данни на половина в Stack и Queue, но както правилно колегата Galin.P87 пише и това ()[] е валиден вход. Затова метода с разделянето не ни върши работа. Ето и моето променено решение, което дава 100/100 - https://pastebin.com/3YEuyzNg

Поздрави!

0