Софтуерно Инженерство
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 375 Точки

Здравей Колега в 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 529 Точки

решението май е само 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