Loading...
KonstantinLupov avatar KonstantinLupov 34 Точки

Напътствие към правилно решение на задача

Здравейте,

Нужна ми е малко помощ за откриването къде се корени проблема в моето решение на задачата Files: 
Получавам само 10/100 точки, като 1 тест е верен, 2 и 3 - грешни и от 4 до 10 включително гърмят.
Ето го и решението ми: http://pastebin.com/bS45yNAt

Тагове:
0
Fundamentals Module
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

http://pastebin.com/CVeqzSUX - ето моето решение на задачата

0
RoYaL avatar RoYaL Trainer 6849 Точки

Браво. Супер, че си ползвал SortedDictionary. :)

 

Като цяло има едно важно нещо, което трябва да знаете за речниците и то е бързината на търсенето. Ако всичко се пази под правилнит асоциации, имаш директно търсене (без претърсване на речника).

Например ако кажеш dictionary["pesho"] ще получиш стойността, която стои под ключа "pesho" директно, без да минава през всички ключове.

Ако обаче кажеш dictionary.Keys.Contains("pesho") това ще извади KeyCollection-а и ще провери всеки един от тях дали не е "pesho". Преливането от един речник в друг речник, също като цяло загубва голяма част от бързината, тъй като претърсваш речника веднъж, за да го прелееш и после го претърсваш пак за да го изпринтираш.

Това, което ми дойде на акъла е да се ползва един речник, който пази следната асоциация:

root => extension => name => size

Примерно

["Documents"] =>
	["exe"] =>
		["wow.exe"] => 45800,
		["cmd.exe"] => 33331
	["jpg"] =>
		["friends.jpg"] => 100,
		["family.jpg"] => 200
["Pictures"] =>
	["exe"] => ....
	["txt"] => ......
	["jpg"] => .......
...

съответно ако поискаш dictionary["Documents"]["jpg"] ще ти върне колекция от Dictionary-та, в която има friends и family със съответните size-ове.

Така, че имаш директно поглеждане в речника по root и extension, без да се налага да го притърсваш и можеш да foreach-неш само тези файлове за съответния root и extenson и да ги изпринтираш на екрана. Евентуално да сортираш преди това.

Ето подобно решение:

http://pastebin.com/vLJLBejd

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