Loading...
TonyTroev avatar TonyTroev 26 Точки

RageQuit

Опитах се да реша тази задача от Exam Preparation III, използвайки HashSet<char> за уникалните елементи, но ми излизаха с един повече на 3-ти нулев тест и 1-ви тест. Ако някой ми каже защо, ще му бъда много благодарен!

Judge: https://judge.softuni.bg/Contests/Practice/Index/455#2

0
Programming Basics
AlucardDracula avatar AlucardDracula 416 Точки
string input = Console.ReadLine().ToUpper();
Regex test = new Regex(@"(\D+)(\d+)");
StringBuilder result = new StringBuilder();
foreach (Match a in test.Matches(input))
{
    string txt = a.Groups[1].Value;
    int repeat = int.Parse(a.Groups[2].Value);
    for (int i = 0; i < repeat; i++)
    {
        result.Append(txt);
    }
}
Console.WriteLine("Unique symbols used: {0}", result.ToString().Distinct().Count());
Console.WriteLine(result);

така съм го решил преди време. сигурно има и други начини.

0
TonyTroev avatar TonyTroev 26 Точки

И аз така подходих, след като не ми се получаваше с HashSet. Оказа се, че когато числото след думата е нула, не се добавят символите. Това е била уловката. Благодаря все пак за помощта!

0
28/02/2018 23:59:47
AlucardDracula avatar AlucardDracula 416 Точки

Колега TonyTroev стана ми интересно и отново я реших по-различен начин или просто по трудния начин: https://pastebin.com/wL3Gq0iP

първо ми даваше грешка с времето щото бях сложил StringBuilder-а по този начин, но после го оправих както ще се вижда на линка, което дадох:

for (int i = index; i < user.Length; i++)
            {
                if (Char.IsDigit(user[i]))
                {
                    StringBuilder currentRepeatCount = new StringBuilder();
                    currentRepeatCount.Append(user[i]);
                    int j;
                    for (j = i+1; j < user.Length; j++)
                    {
                        if (Char.IsDigit(user[j]))
                        {
                            currentRepeatCount.Append(user[j]);
                        }
                        else
                            break;
                    }
                    repeatCount = int.Parse(currentRepeatCount.ToString());
                    index = j;
                    break;
                }
                else
                    currentWord.Append(user[i]);
            }

 

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