Loading...

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

SvilenPavlov avatar SvilenPavlov 11 Точки

09.Simple Text Editor - C# Advanced - Sep 2018 - Stacks and Queues - Exercise

Здравейте!

Условие: https://tinyurl.com/ycbnvwjr

Код:  https://pastebin.com/HD2RfN1N

Не знам как да намаля времето за този код, към момента 90/100 - между 2.109s и  3.024s го дава в джъжд. Нарочно не съм гледал чужд код засега, иска ми се да оптимизирам достатъчно моя вариянт и после да видя как всъщност е "правилно" да се направи, защото подозирам, че за да има толкова бавене във времето сигурно греша генерално подхода.

Тагове:
0
C# Advanced 05/11/2018 17:18:21
simeon3000 avatar simeon3000 264 Точки
Best Answer

Идеята тук е да се ползва стек за пазене на предишни състояния - да можеш да правиш Undo и то многократно.

Тази сравнително лесна задача си я усложнил до неузнаваемост :)

Разгледай едно обикновено решение https://pastebin.com/Q7yjjNd и помисли над следния въпрос: "Утре", като започнеш работа, ще ти се налага да работиш с код, писан от други хора. Как би искал да изглежда?

0
05/11/2018 22:59:31
SvilenPavlov avatar SvilenPavlov 11 Точки

Мерси, в последствие се сетих, че стака може да го ползвам само за командите реално. Твоя код е пък още по-смарт, защото всеки път, добавяш към стака новата версия на стринга. Последното, направо ме разтресе до мозъка на костите. Сякаш съм в чистилището и Морган Фрийман ме пита със съдбоносен глас "Ти смяташ ли, че заслужаваш absolution?":|

0
08/11/2018 10:41:27
kalina_ilieva avatar kalina_ilieva 4 Точки

Здравейте,

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

Благодаря предварително,

Калина

https://pastebin.com/fQgBCV6B

0
Judeva avatar Judeva 0 Точки

var builder = new StringBuilder();

var stack = new Stack<string>();
stack.Push(builder.ToString());

 

Това последното си изпуснала да го добавиш.

0
prohause avatar prohause 356 Точки

String или StringBuilder ползваш? 

0
SvilenPavlov avatar SvilenPavlov 11 Точки

Стринг. Пастенал съм кода.

0
prohause avatar prohause 356 Точки

Нямаш нужда от този stack(char) работи директно върху string със substring. Стака като цяло е бавен. 

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