Loading...
PShterev avatar PShterev 1 Точки

Exercise: Lists - C# Fundamentals - 3. House Party

Здравейте,

може ли някой да помогне относно намиране

на причината Judge да дава 87 / 100 ?

 

using System;
using System.Collections.Generic;
using System.Linq;

namespace HouseParty
{
    class Program
    {
        static void Main(string[] args)
        {
            int numOfGuests = 0;
            string num = Console.ReadLine();
            if (int.TryParse(num, out numOfGuests))
            {
                numOfGuests = int.Parse(num);
            }

            List<string> guests = new List<string>(numOfGuests * 2);

            for (int i = numOfGuests - 1; i >= 0; i--)
            {
                string[] commands = Console.ReadLine()
                    .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                    .ToArray();

                if (commands.Length >= 3)
                {

                    if (commands[2] == "going!" && guests.Count == 0)
                    {
                        guests.Add(commands[0]);
                    }
                    else if (commands[2] == "going!" && guests.Count > 0)
                    {
                        for (int j = 0; j < guests.Count; j++)
                        {
                            if (guests[j] == commands[0])
                            {
                                Console.WriteLine($"{commands[0]} is already in the list!");
                                break;
                            }

                            if (j == guests.Count - 1 && guests[j] != commands[0])
                            {
                                guests.Add(commands[0]);
                                break;
                            }
                        }
                    }

                    if (commands[2] == "not")
                    {
                        for (int j = 0; j < guests.Count; j++)
                        {
                            if (guests[j] == commands[0])
                            {
                                guests.RemoveAt(j);
                                break;
                            }

                            if (j == guests.Count - 1 && guests[j] != commands[0])
                            {
                                Console.WriteLine($"{commands[0]} is not in the list!");
                                break;
                            }
                        }
                    }

                }
            }
            if (guests.Count > 0)
            {
                for (int i = 0; i < guests.Count; i++)
                {
                    Console.WriteLine(guests[i]);
                }
            }

        }
    }
}

Тагове:
0
C# Fundamentals
Elena123456 avatar Elena123456 235 Точки
Best Answer

Здравей, дебъгвах няколко пъти и успях само да опростя началото на кода ти, но отново резултата е 87/100. Мисля, че опростяването ще ти помогне за вбъдеще, специално за задачите в СофтУни. Можеш и да разгледаш моето решение https://pastebin.com/rhj1RCS5, като отново използвайки Contains ще си улесниш работата с листове, без да използваш директно for цикъл.

Поздрави!

using System;
using System.Collections.Generic;
using System.Linq;

namespace HouseParty
{
    class Program
    {
        static void Main(string[] args)
        {
            int numOfGuests = int.Parse(Console.ReadLine()); // няма нужда от TryParse(), защото можеш числото директно да го четеш, като int.
           
            List<string> guests = new List<string>(); // не е нужно да задаваш дължината на листа, така както се задава при масива, защото по това се различават двата типа от данни-листа няма фиксирана дължина. Досега не съм, виждала никой от лекторите да задава точна дължина на лист.

     

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