Професионална програма
Loading...
+ Нов въпрос
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

В нета намерих следната дефиниция на Balanced Parenthesis:

Balanced parentheses means that each opening symbol has a corresponding closing symbol and the pairs of parentheses are properly nested.

 

Не знам какво има в последния тест, но по горната дефиниция аз успях да измисля тест, с който програмата ти не се справя: ({}[]). На този тест трябва да получиш изход YES.

2
kaloyannikov avatar kaloyannikov 531 Точки

Ще ти дам жокер : трябва да проверяваш ако имаш затваряща скоба дали съоветсва на последната отваряща

0
24/05/2016 10:51:55
valenteeeen avatar valenteeeen 6 Точки

Здравейте!

На мен Judge - а, също ми дава 77 точки и не мога да разбера, какво не съм предвидил ... !

using System;
using System.Collections.Generic;

class _07_00_BalancedParenthesis

    static void Main()
    {
        string inStr = Console.ReadLine();
        
        Queue<int> que = new Queue<int>();
        int n = inStr.Length / 2;
        Queue<char> que1 = new Queue<char>();
        Queue<char> que2 = new Queue<char>();
        for (int i = 0; i < n; i++)
        {
            que1.Enqueue(inStr[i]);
            que2.Enqueue(inStr[inStr.Length - 1 - i]);
            
            char a = que1.Dequeue(), b = que2.Dequeue();

            if ( a == '{' && b == '}' ) que.Enqueue(i);
            if ( a == '}' && b == '{' ) que.Enqueue(i);
            if ( a == '[' && b == ']' ) que.Enqueue(i);
            if ( a == ']' && b == '[' ) que.Enqueue(i);
            if ( a == '(' && b == ')' ) que.Enqueue(i);
            if ( a == ')' && b == '(' ) que.Enqueue(i);
            if ( a == ' ' && b == ' ' ) que.Enqueue(i);
        }
        if (que.Count == n)
        {
            Console.WriteLine("YES");
        }
        else Console.WriteLine("NO");
    }
}

0
slav.petkov avatar slav.petkov 26 Точки

Здравей, valenteeen,

погледнах решението ти. Ще ти дам една идея - имаш нужда само от един Stack<char>. Когато прочетеш отваряща скоба, слагаш я вътре. При прочитане на затваряща, взимаш скоба от стека и проверяваш дали си съответства със затварящата.

УСПЕХ!

 

1
valenteeeen avatar valenteeeen 6 Точки

Здравейте! Благодаря за съвета! Ще се опитам да го изпълня! Дано да се получи очавания ефект!! 

0
snakera avatar snakera 10 Точки

ето го последният тест,аз също се опитвам да я докарам до 100 

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

0
sevdalin avatar sevdalin 38 Точки

Единият от тестовете не минаваше, защото има подводен камък, който е че може да имаме следната "отваряща" скоба ) и съответно "затварящата" трябва да е (, което няма голяма логика ама ...

А за теста, който си писал, че е последният. Според мен отговора е подаден грешно в Judge, няма как да започва с () и да свършва с )) и да бъде YES резултата, не отговаря на условието на задачата. Иначе като го "хард корнах" и псожих просто if проверка за този string и тогава да бие YES, даде 100/100. Но според мен е сбъркано в Judge...

1
georgiab avatar georgiab 34 Точки

Благодаря ти много, това ме побъркваше!!!!!

В условието обаче изрично е описано, че "Each character of the sequence will be one of {, }, (, ), [, ].". Никъде не се споменава за ),( като валидна комбинация.

Моля, някой от СофтУни да оправи условието за да не докарват психически разтройства на студентите си :)

1
sotirona avatar sotirona 25 Точки

И аз се чудих много време, благодаря!

0
mad_cop avatar mad_cop 6 Точки

Ето едно решение за 100/100

https://pastebin.com/iCamUJ8Q

дано съм бил полезен

0
Dokka avatar Dokka 1 Точки

С това решение може и да имаш 100 точки, но има грешка, която е допуснал и лектора на упражненията. Ако вкараш първо затваряща скоба програмата гърми.

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