Loading...
TStancheva avatar TStancheva 3 Точки

Здравейте имам проблем със задача 8 Balanced Parentheses, може ли малко помощ

Problem 8. Balanced Parentheses
Given a sequence consisting of parentheses, determine whether the expression is balanced. A sequence of
parentheses is balanced if every open parenthesis can be paired uniquely with a closed parenthesis that occurs
after the former. Also, the interval between them must be balanced. You will be given three types of
parentheses: (, {, and [.
{[()]} - This is a balanced parenthesis.
{[(])} - This is not a balanced parenthesis.
Input
 Each input consists of a single line, the sequence of parentheses.
Output
 For each test case, print on a new line "YES" if the parentheses are balanced.
Otherwise, print "NO". Do not print the quotes.
Constraints
 1 ≤ len s ≤ 1000, where len s  is the length of the sequence.
 Each character of the sequence will be one of {, }, (, ), [, ].
Examples
Input Output
{[()]} YES
{[(])} NO
{{[[(())]]}} YES

моят код ми дава 87/100

линк:https://pastebin.com/zvtiH2Mv

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

0
C# Advanced
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

Hi,

1.Line 11 + 12 : You just need one stack-collection to solve this exercise. Adding an additional queue-collection will just make the code more complicated

2.Line 13 +14 : Replace arrStart and arrEnd with a char-array collection( char[] brackets = { '(', '{', '['};), which will then be used for validation purposes

3.Lines 16-20, 21-32, 33-36 can all be compacted into one foreach-cycle (with all the required validations and collection creations)

Default solution by Softuni instructors:

using System;
using System.Collections.Generic;
using System.Linq;

namespace balancedParantheses
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack<char> stack = new Stack<char>();
            char[] brackets = { '(', '{', '['};
            char[] input = Console.ReadLine().ToCharArray();
            bool valid = true;
            foreach (var bracket in input)
            {
                if (brackets.Contains(bracket))
                {
                    stack.Push(bracket);
                    continue;
                }

                if (stack.Count == 0)
                {
                    valid = false;
                    break;
                }
                if (stack.Peek() == '(' && bracket == ')')
                {
                    stack.Pop();
                }
                else if (stack.Peek() == '[' && bracket == ']')
                {
                    stack.Pop();
                }
                else if(stack.Peek() == '{' && bracket == '}')
                {
                    stack.Pop();
                }
                else
                {
                    valid = false;
                    break;
                }
            }

            if (valid)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

0
TStancheva avatar TStancheva 3 Точки

Благодаря за бързия отговор и обясненията :)

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