Loading...

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

AlexanderPetkov27 avatar AlexanderPetkov27 1 Точки

The V-Logger , Sets and Dictionaries Advanced

Здравейте, логиката ми не работи при някои примерни тестове и освен това при принтирането се опитвам да достъпя елементите от сет-а само за първият ключ и  да ги принтирам, но не ми се получава ..

https://pastebin.com/32aqZnKe

Тагове:
0
C# Advanced
SvilenPavlov avatar SvilenPavlov 11 Точки

Здравей! 
От твоето решение си взех идеята за каква да ми е конструкцията на данните 
new Dictionary<string, Dictionary<string, SortedSet<string>>>();
и от там натам се оправих. 
Както каза GeorgiPaunov, логиката ти за първата проверка, дали човека се включва в сайта или става follower на друг член ти я няма.Структурата ти на проверки е объркана.
1. Приоритета на проверяване трябва да е: 
     1.Коя команда ми подават - joined или following

     2. Ако е joined - има ли го тоя човек или го няма в базата данни - ако го няма го вкарваме с изициализирани подречници followers и following
    3. Ако е followed - има ли ги и двамата и различни ли са username-овете има, за да не се последва някой сам себе си, което може да го направиш в един ред така:
if (dict.ContainsKey(vlogger) && dict.ContainsKey(member) && vlogger!=member)

А ти правиш една първоначална проверка:
if (line[0] == line[2])
line = Console.ReadLine().Split()           

което не работи, най-малкото защото взимаш console.readline() и накрая на while цикъла пак взмаш нов ред, пропускайки един цял вход.

2. Поприницп, а и особено в такива задачи с вложени структури данни е в ПЪТИ по-лесно да си наименоваш променливите,с  които ще работиш. Примерно тоя line[0] да се казва vlogger, а втория да се казва member. Така по-лесно се вижда грешката ти при записване на нов човек, тук 
dict[line[0]]["following"].Add(line[2]);

Реално ти записваш при following, а трябва при followers.

3. Накрая при принтирането си направил по-трудното да ги сортираш, но не си дописал една иф проверка дали тоя counter==1, и във вложения for цикъл да си напишеш от коя колекция ги търсиш последователите на първенеца, а именно:
kvp.Value["followers"]
 

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