Loading...
dmdbrv avatar dmdbrv 17 Точки

Enigmanation - задача от бгкодер

Здравейте, колеги

При подготовката си за изпита попаднах на задача от бгкодер с име Enigmanation (условието тук: цък) (която е давана преди година-две на изпит в телерик) и отделих скромните 6 часа + за да я реша, но за съжаление не успях.

С две думи логиката е следната: програмата отделя всеки знак или число като елемент на масив, а при наличие на скоби ги преобразува, така че да върнат стойността вътре в скобите. По този начин: "1*2+3*(4+5*6)=" създава масив от стрингове: {"1", "*", "2", "+", "3", "*", "34", "="}. При наличие на - или + действието се извършва накрая, затова всичко преди и след +ът или -ът става отделен елемент и накрая според знака се извършва необходимото действие.

Проблемът е, че при въвеждане на скоби ако след скобите има други числа/знаци програмата гърми. Тоест: "1*2+3*(4+5*6)=" работи коректно, но "3*(4+5*6)+1*2=" - гърми. Не знам дори дали е нещо малко или цялата ми логика е грешна.

Ето линк към кода, бая дългичък е, но ако се намери някой добър самарянин да помогне съм склонен да го черпя една бира innocentцък.

Тагове:
3
Programming Basics
RFilipov avatar RFilipov 136 Точки

Това е моето решение само със знания от Basic нивото (като изключим Regex, но това може да се замени с "||").

http://pastebin.com/87sUASAi

Това е една от не-тривиалните задачи, които съм решавал и не е лошо да разгледат условието и да се помъчат да я решат тези които ще сядат за 500.

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