Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

arnold avatar arnold 50 Точки

Balanced Parentheses (C#)

Тази задача леко започна да ми къса нервите :D Какво ли не пробвах, все до 66/100. Ако някой може да помогне в откриването на грешките в невидимите тестове на judge, ще съм благодарен, защото вече и отделих доста време и започнах да се отчайвам :) 

 

https://pastebin.com/gBS0e9qF

https://judge.softuni.org/Contests/Practice/Index/1447#7

 

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 ≤ lens ≤ 1000, where lens is the length of the sequence.
  • Each character of the sequence will be one of {, }, (, ), [, ].

Examples

Input

Output

{[()]}

YES

{[(])}

NO

{{[[(())]]}}

YES

0
Module: C# Advanced 08/09/2021 17:39:42
Axiomatik avatar Axiomatik 2422 Точки
Best Answer
using System;
using System.Collections.Generic;
 
namespace BalancedParentheses
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
 
            Stack<char> stackParentheses = new Stack<char>();
            bool isSuccess = true;
 
            for (int i = 0; i < input.Length; i++)
            {
                if (input[i] == '{' || input[i] == '[' || input[i] == '(')
                {
                    stackParentheses.Push(input[i]);
                    continue;
                }
                // required to pass error tests
                if (stackParentheses.Count == 0)
                {
                    isSuccess = false;
                    break;
                }
 
                // Peek not Pop, only Pop when valid case
                if (input[i] == '}' && stackParentheses.Peek() == '{' 
                    || input[i] == ']' && stackParentheses.Peek() == '[' 
                    || input[i] == ')' && stackParentheses.Peek() == '(')
                {
                    stackParentheses.Pop();
                }
                else
                {
                    isSuccess = false;
                    break;
                }
            }
 
            if (isSuccess == true)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

 

1
arnold avatar arnold 50 Точки

Задачите със стекове и опашки се оказаха доста трудни, иначе като концепция ми изглеждаха лесни, но трудното идва при задачите както винаги

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