Balanced Parentheses
https://pastebin.com/s0J5af8B
дава 88 от 100 в джъдж, някой може ли да ми каже къде точно ми е грешката.
https://pastebin.com/s0J5af8B
дава 88 от 100 в джъдж, някой може ли да ми каже къде точно ми е грешката.
Тази задача има много варианти, но ако говорим за най-простият (без приоритет между видовете скоби), сте усложнили ненужно решението.
Най-простият (и това автоматично го прави най-добър) алгоритъм за решаването на този проблем) е с използването на един стек.
Четем скобите една по една:
- ако е отваряща, т.е. ( { [, я добавяме в стека
- ако е затваряща, т.е. ) } ], проверяваме в стека:
---- ако е празен => невалиден израз
---- ако скобата е от друг тип => невалиден израз
---- ако скобата е отваряща от правилния тип, продължаваме (след като сме я извадили от стека)
- като свършат всички входни данни, проверяваме дали стека е празен:
---- ако не е празен => невалиден израз
---- празен стек - всички скоби са формирали валидни двойки, т.е. изразът е валиден