Nawiasowanie
Napisz program, który sprawdzi, czy w danym wyrażeniu matematycznym nawiasy są poprawnie zbalansowane. Wyrażenie może zawierać trzy typy nawiasów:
()
, []
, {}
Wyrażenie jest poprawne, jeśli:
- Każdy otwierający nawias ma swój odpowiedni zamykający.
- Nawiasy są poprawnie zagnieżdżone, np. ({[]}) jest poprawne, ale {[}] nie.
Na wejściu znajduje się jedno słowo (maksymalnie 1000 znaków) zawierające znaki ()[]{}
.
Na wyjściu powinno znaleźć się dokładnie jedno słowo:
- "TAK", jeśli nawiasy są poprawnie zbalansowane.
- "NIE", jeśli są błędnie ułożone.
Wskazówka:
Do rozwiązania użyj std::stack, który będzie przechowywał otwierające nawiasy.
Gdy znajdziesz otwierający nawias, wrzucasz go na stos.
Gdy znajdziesz zamykający nawias, sprawdzasz, czy zgadza się z ostatnim otwartym (ze stosu).
Wejście | Wyjście |
(]{()} | NIE |