Loading...
kabalsky avatar kabalsky 27 Точки

Stream of Letters

Здравейте.

Доста се затрудних , но реших тази задача 

"Поток от букви
Напишете програма, която прочита скрито съобщение в поредица от символи. Те се получават по един на ред до получаване на командата "End". Думите се образуват от буквите в реда на четенето им. Символите, които не са латински букви трябва да бъдат игнорирани. Думите скрити в потока са разделени от тайна команда от три букви – "c", "o" и "n". При първото получаване на една от тези букви, тя се маркира като срещната, но не се запазва в думата. При всяко следващо нейно срещане се записва нормално в думата. След като са налични и трите символа от командата, се печата думата и интервал " ". Започва се нова дума, която по същия начин чака тайната команда, за да бъде отпечатана."
Това ми е решението : https://pastebin.com/v0sZSPvs

Judge ми дава 100/100,но бих искал да попитам дали няма по лецен вариант и дали кодът "става".

Тагове:
0
Programming Basics with C#
Borislav_Vulkov avatar Borislav_Vulkov 54 Точки

Ето едно малко по - различно решение, но не мога да кажа, че е много по "елегантно" от това което ти си направил.
Програмата ти е ок :)

namespace StreamOfLetters
{
    using System;
    using System.Collections.Generic;

    public class StartUp
    {
        public static void Main()
        {
            var message = new List<char>();
            var currentWord = new List<char>();

            string input = string.Empty;

            bool letterCIsExist = false;
            bool letterOIsExist = false;
            bool letterNIsExist = false;

            while ((input = Console.ReadLine()) != "End")
            {
                char currentChar = input[0];

                if ((currentChar >= 'a' && currentChar <= 'z') || 
                    (currentChar >= 'A' && currentChar <= 'Z'))
                {
                    if (currentChar == 'c' && !letterCIsExist)
                    {
                        letterCIsExist = true;
                    }

                    else if (currentChar == 'o' && !letterOIsExist)
                    {
                        letterOIsExist = true;
                    }

                    else if (currentChar == 'n' && !letterNIsExist)
                    {
                        letterNIsExist = true;
                    }
                    else
                    {
                        currentWord.Add(currentChar);
                    }

                    if (letterCIsExist && letterOIsExist && letterNIsExist)
                    {
                        letterCIsExist = false;
                        letterOIsExist = false;
                        letterNIsExist = false;

                        foreach (var @char in currentWord)
                        {
                            message.Add(@char);
                        }

                        message.Add(' ');
                        currentWord.Clear();
                    }
                }
            }

            foreach (var @char in message)
            {
                Console.Write(@char);
            }
        }
    }
}
 

0
kabalsky avatar kabalsky 27 Точки

Благодаря.

0
k.durzhev avatar k.durzhev 2 Точки

Ето едно решение и от мен - тук.

0
kabalsky avatar kabalsky 27 Точки

Благодаря

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