Loading...
anton_mironov avatar anton_mironov 19 Точки

Трета на място нещо не ми се получи... сега включих, че ще стане със StringBuilder...


            string input = Console.ReadLine();
            int counter = 0;
            StringBuilder sb = new StringBuilder();
            sb.Append(input);
            bool trick = true;
            while (trick == true) // тук ако се напише само (trick) пак ще работи...
            {
                int temp = 0;
                for (int i = 0; i < sb.Length; i++)
                {
                    if (i + 1 < sb.Length)
                    {
                        if (sb[i] == sb[i + 1])
                        {
                            sb.Remove(i, 2);
                            counter++;
                            temp++;
                        }
                    }
                }
                if (temp == 0)
                {
                    trick = false;
                }
            }   
            
            string output = sb.ToString();
            if (output.Length > 0)
            {
                Console.WriteLine(output);
                Console.WriteLine(counter + " operations");
            }
            else
            {
                Console.WriteLine("Empty String");
                Console.WriteLine(counter + " operations");
            }
 

1
alex1966 avatar alex1966 255 Точки

Всъщност има и по - кратък и лесен начин, не знам колко е оптимален
string input = Console.ReadLine();

            short operations = 0;
            for (int i = 0; i < input.Length - 1; i++)
            {
                if (input[i] == input[i + 1])
                {
                    input = input.Remove(i, 2);
                    operations++;
                    i = -1;
                }
            }

            if (String.IsNullOrEmpty(input))
            {
                Console.WriteLine("Empty String");
            }
            else
            {
                Console.WriteLine(input);
            }
            Console.WriteLine(operations + " operations");

3
anton_mironov avatar anton_mironov 19 Точки

Благодаря колега,

Доста по-подредено и опростено... по време на изпита и аз така тръгнах да я решавам, но не се сетих да връщам една итерация назад в цикъла... Малко играчка иска, иначе не е нищо особено...

Поздрави,
Антон Миронов

1
ThePSXHive avatar ThePSXHive 436 Точки

Решавали ли сте четвърта задача? Доколкото разбирам, слоевете на куба не трябва да бъдат въвеждани като n отделни nxn матрици, а на ред по ред. По този начин така или иначе ще бъдат получени n на брой кв. матрици. За n = 3, например, при въвеждането си, първият ред ще изглежда по следния начин

ooo | soo | ooo

Отначало сметнах, че празните места не съществуват в input-a, но дори и след модификация на програмата, нулевите тестове не минават. Подозирам, че това е свързано с форматът на въвеждане, и е възможно действително да се изисква създаването и запълването на n на брой отделни квадратни матрици.

0
hwfbcisod avatar hwfbcisod 80 Точки

Относно 4-та: Аз лично си представям задачата като n квадратни матрици, където всяка от тях е слой от куба. Съответно най-левия input е квадратната матрица, която отговаря на най-горния слой в куба и т.н. Това е решението ми: http://pastebin.com/RPcrvP2V

1
bMedarski avatar bMedarski 148 Точки

Можеш ли да покажеш решението на 06. Shop Keeper . Аз успях до  50 само да добутам

0
monyarm avatar monyarm 1 Точки

Аз в момента се пробвам на Softuniada 2017 задачите за да си тествам знанията, но не ми излиза 3та, в Visual Studio няма проблем, но в Judge,  не работи както трябва.

using System;
using System.Linq;
using System.Text.RegularExpressions;

public class SoftUni
{
    public static void Main()
    {
        string s = Console.ReadLine();
        int counter = 0;
        var matches = Regex.Matches(s, @"([a-z])\1{1}");


        while (matches.Cast<Match>().Count() > 0)
        {
            s = s.Replace(matches[0].Value, "");
            matches = Regex.Matches(s, @"([a-z])\1{1}");
            counter++;
        }

        if (s == "" || s == " ")
        {
            Console.WriteLine("Empty String");
        }
        else
        {
            Console.WriteLine(s);
        }
        Console.WriteLine($"{counter} operations");
    }
        
}


 

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