Loading...
alexei.tcekov avatar alexei.tcekov 33 Точки

Колега сподели какво не ти излиза ? 

https://gist.github.com/alexeitcekov/470a80d0a4ea4bd440d2fb07c296b874

https://gist.github.com/alexeitcekov/a52a66a2eff02a0d91e78dded38437a6

0
18/05/2016 12:13:57
val4o89 avatar val4o89 240 Точки

На 8-ма нали с рекурсия трябва, аз я направих с рекурсия, но ми гърмят последните 2 теста за време. То мойта ай-петичка се зори бая :)

Как да го направя по-бързо? Ето моето р-ие за 75т. : https://github.com/val4o89/CSharp-Advanced-Softuni/blob/master/Program.cs

0
18/05/2016 13:34:16
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Имате ли идея защо на простичък код като на зад.3 последните 2 теста ми дават Time limit ?

static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            Stack<int> nums = new Stack<int>();
            for (int i = 0; i < n; i++)
            {
                string line = Console.ReadLine();
                if (line == "2")
                {
                    nums.Pop();
                }
                else if (line == "3")
                {
                    Console.WriteLine(nums.Max());
                }
                else
                {
                    nums.Push(int.Parse(line.Split(' ')[1]));
                }
            }
        }

Какво трябва да се оптимизира в случая?

0
val4o89 avatar val4o89 240 Точки

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

2
Alex0101 avatar Alex0101 374 Точки

Здравей Колега в githuba можеш да намериш решения на всички без 11 задача. Тази със скобите излиза на 87 точки

 

https://github.com/AlexanderKrustev/SoftUni/tree/master/CSharp%20Profession/Advanced/Stack%20and%20Queues

2
zisov4eto avatar zisov4eto 19 Точки

И аз като теб, само че се дъня на предпоследният тест.

Явно не схващам всички условия за балансирани скоби.

0
kaloyannikov avatar kaloyannikov 531 Точки

решението май е само 1 , трябва да ползваш 1 стек за отворените скоби (както на видеото с упражненията) и когато срещнеш отворена скоба push-ваш , а когато срещнеш затворена проверяваш дали е от същия вид като последната отваряща .

Ако е еднаква pop-ваш , ако не направо бреакваш и пишеш "NO";

Примерно имаш ( ) ( )

пушваш в стека '(' следващата е ')' и попваш '(' стека ти е празен след това се повтаря това .

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

1
21/05/2016 14:27:27
zisov4eto avatar zisov4eto 19 Точки

Ааа супер! Единственето, което ме заблуди е, че тази задача беше след III точка в заданието, която гласи  "Exercises with Stacks and Queues" и аз всячески се опитвах да я реша и със Stack и с Queue. Това е малко като вица с програмиста където го пратили до магазина. smiley

Благодарности колега!

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