Loading...
ibakyrdjiev avatar ibakyrdjiev 172 Точки

[Exam Problems] C# Basics - Five Special Letters

Здравейте колеги! Моля помогнете с тази задача. От 2 мисля как да ми подреди резултата в азбучен ред, но не мога да се справя. 

Това е линка към задачата http://judge.softuni.bg/Contests/Practice/Index/7#3

Това е моето творение - http://pastebin.com/wYLAtsTP

Благодаря :) 

Илия

Тагове:
1
Programming Basics
Hristo_Penchev avatar Hristo_Penchev 389 Точки

При всички положения трябва да обходиш всяка една комбинация чрез вложени цикли. Предлагам следното:

Правиш масив от символи {a ,b , c, d, e}

правиш и масив с тегла {5, -12, 47, 7, -2}

 

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

 

Чрез пет вложени цикъла минаваш всяка комбинация от букви. В тялото на най-вътрешния масив проверяваш дали теглото на комбинацията отговаря на условията и ако да - отпечатваш комбинацията (можеш да я държиш в някакъв временен масив или лист).

Забележи, че при така подредени символи в масива, системата от цикли сама ще обходи комбинациите по азбучен ред. Първо ще излезе за проверка комбинацията aaaaa, след това, aaaab и т.н.

 

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

3
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Вместо да ги принтираш в най-вътрешния цикъл си направи един List и добавяй резултатите там. Накрая извън for циклите сортирай List-a с името.List() и си готов. После може да го принтираш на конзолата или с foreach или със string.Join. Почти е невъзможно на изпита програмата да изгърми при използването на List за 4-та задача. И времето и паметта на всички задачи от изпитите са отпуснати така, че да може да се експериментира.

2
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Когато съм обработвал масив от референтни типове програмата ми гърми в Judge. Всеки си преценява, но според мен е по-добре да се избере по-малко натоварващият начин.

1
Cecobent avatar Cecobent 2 Точки

Според мен най доброто решение до момента е моето, може да помислите над него.
https://pastebin.com/MnjXUnVd
Задавайте въпроси, ако имате нужда!

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