Stacks and Queues
Някой може ли да сподели решенията на 8 и 9 - та задача.
Някой може ли да сподели решенията на 8 и 9 - та задача.
Колега сподели какво не ти излиза ?
https://gist.github.com/alexeitcekov/470a80d0a4ea4bd440d2fb07c296b874
https://gist.github.com/alexeitcekov/a52a66a2eff02a0d91e78dded38437a6
Здравей Колега в githuba можеш да намериш решения на всички без 11 задача. Тази със скобите излиза на 87 точки
https://github.com/AlexanderKrustev/SoftUni/tree/master/CSharp%20Profession/Advanced/Stack%20and%20Queues
И аз като теб, само че се дъня на предпоследният тест.
Явно не схващам всички условия за балансирани скоби.
решението май е само 1 , трябва да ползваш 1 стек за отворените скоби (както на видеото с упражненията) и когато срещнеш отворена скоба push-ваш , а когато срещнеш затворена проверяваш дали е от същия вид като последната отваряща .
Ако е еднаква pop-ваш , ако не направо бреакваш и пишеш "NO";
Примерно имаш ( ) ( )
пушваш в стека '(' следващата е ')' и попваш '(' стека ти е празен след това се повтаря това .
И аз бях тръгнал по същата логика ,но се оказва май че само по тоя начин може да се реши.
Ааа супер! Единственето, което ме заблуди е, че тази задача беше след III точка в заданието, която гласи "Exercises with Stacks and Queues" и аз всячески се опитвах да я реша и със Stack и с Queue. Това е малко като вица с програмиста където го пратили до магазина.
Благодарности колега!
На 8-ма нали с рекурсия трябва, аз я направих с рекурсия, но ми гърмят последните 2 теста за време. То мойта ай-петичка се зори бая :)
Как да го направя по-бързо? Ето моето р-ие за 75т. : https://github.com/val4o89/CSharp-Advanced-Softuni/blob/master/Program.cs
Имате ли идея защо на простичък код като на зад.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]));
}
}
}
Какво трябва да се оптимизира в случая?
методът Max() e бавен и за това ти гърми, за това трябва да пазищ максималните стойности в помощен стек (втори, освен основния), и в случай, че попваш от основния трябва да попваш и от помощния.