Loading...
puffed avatar puffed 289 Точки

Благодарим! Разбира се, че с регекс.. а аз се мъчих с разделяне по не знам си какво. А в тази връзка можеш ли да кажеш какъв ще е regex-a на 03. Football League от втория подготвителен изпит?

0
tiapko avatar tiapko 31 Точки

При мен беше точно обратното. С regex всичко ми излизаше ОК, но ми гърмеше на тестовете 70/100. С обикновеното сплитване ми отне 10 минути цялата задача:

            foreach (string row in input)
            {
                char[] splitParams = { '\\', ';' };
                string[] data = row.Split(splitParams).ToArray();
                string currentRoot = data[0];
                string currentExt = data[data.Length - 2].Split('.').ToArray()[data[data.Length - 2].Split('.').ToArray().Length - 1];
                string currentFileName = data[data.Length - 2];
                long currentFileSIze = long.Parse(data[data.Length - 1]);

0
21/10/2016 15:41:45
cheresharov avatar cheresharov 42 Точки

За 03. Football League

Без да съм го тествам във Visual Studio...


 

string key = Regex.Escape(Console.ReadLine());

// ....

Regex regex = new Regex($"(?:{key}(\\w+){key}).*(?:{key}(\\w+){key}).*(\\d+):(\\d+)", RegexOptions.IgnoreCase);

 

п.п.

след тест:

            string key = Regex.Escape(Console.ReadLine());
            Regex regex = new Regex($"(?:{key}(\\w*?){key}).*(?:{key}(\\w*?){key}).*(\\d+):(\\d+)");

но на 10-ти тест дава грешен отговор :(

 

0
21/10/2016 20:52:50
tiapko avatar tiapko 31 Точки

Здравей,

 

С този regex ми дава 100/100;           

            string key = Regex.Escape(Console.ReadLine());
            string pattern = $"{key}(.*?){key}.*?{key}(.*?){key}.*?\\D(\\d+):(\\d+)";

 

2
21/10/2016 22:00:31
cheresharov avatar cheresharov 42 Точки

Даам.

Има логика, защото както измислиха да има страна без име, т.е "", също така може да има някоя със символ, различен от буква или _ 

 

0
puffed avatar puffed 289 Точки

Добре, намерихме регекса, разкрихме всички възможни случаи на имена на страни. Но аз никога в нормална ситуация не бих предположила, че може да има такива имена. И в работата си не бих казала на програмист или тестер да очаква такива случаи, ще им кажа да ги игнорират. Не е нормално това според мен. А и от условието на задачата къде по-точно се вижда това?...

0
cheresharov avatar cheresharov 42 Точки

Да, за страна без име направо не е нормално.

Но пък ако имаме Bosnia and Herzegovina, която си е съвсем истинска страна, \w+ пак няма да свърши работа. Той не лови интервалите...

1
puffed avatar puffed 289 Точки

Да, напълно си прав. Наистина спейс в името е съвсем нормално, а няма да се хване от \w. А за липсващо име на страна може да се приеме например, че е имало служебна попеда на някой и тогава резултата е 0:3, но няма противник. Само ме притеснява това, че в условието нищо такова не е предвидено, по принцип ни глезят и разкриват всички частни случаи още в условието ;) 

Благодаря на всички за помощта!

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