Loading...
simasim avatar simasim 5 Точки

Как се премахват излишните интервали?

Колеги, някой сеща ли се как да премахна излишните интервали в задачата 7. Append Arrays? Написала съм StringSplitOptions.RemoveEmptyEntries, но въпреки това накрая в резултата ми принтира излишни празни знаци.

https://pastebin.com/SSuYA9jz

Условието:

Write a program to append several arrays of numbers.
 Arrays are separated by ‘|’.
 Values are separated by spaces (‘ ’, one or several).
 Order the arrays from the last to the first, and their values from left to right.

Тагове:
0
Programming Fundamentals
VasilKotsev avatar VasilKotsev 830 Точки

Values are separated by spaces (‘ ’, one or several).

 Не сплитваш правилно... Можеш да му подадеш масив от char-ове:

.Split(new[] {' ', '|'}, StringSplitOptions.RemoveEmptyEntries)

EDIT: Не прочетох условието, трябва първо да сплитнеш по pipe за "масивите" и след това по спейс за стойностите.

0
22/02/2019 21:21:45
simasim avatar simasim 5 Точки

Благодаря, но отново ми дава 75 точки, въпреки че тестовете се получават на конзолата. Джъдж нещо не харесва последния тест. Сещаш ли се защо? Ето последния код - https://pastebin.com/RgY2aqDE

0
ElviraPetkovaSvishtov avatar ElviraPetkovaSvishtov 152 Точки

Здравей, колега. Поиграх си малко с кода ти, измислях си тестове и при вход "1|       " резултата е " 1" -> тоест има един празен спейс в началото и може това да дава грешка. Не съм много сигурна как може да се оправи, но ти предлагам друго решение. Преди for loop си инициализаш един лист от интове и вътре в цикъла, довавяш към този лист, чрез метода AddRange резултата,които си получил. След цикъла си принтираш вече новия лист от интове.

0
VasilKotsev avatar VasilKotsev 830 Точки

Ако ти подам като вход: " ||| | | 1  2   3| 4 5 | 6 ||   |" какво ще стане ?

Ето ти примерно решение:

namespace SandBox
{
    using System;
    using System.Linq;
    using System.Collections.Generic;

    public class StartUp
    {
        public static void Main()
        {
            List<string> inputArgs = Console.ReadLine()
               .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
               .Reverse()
               .Where(x => string.IsNullOrWhiteSpace(x) == false)
               .Select(x => string.Join(' ', 
                       x.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)))
               .ToList();

            string concatedResult = string.Join(' ', inputArgs);
            Console.WriteLine(concatedResult);
        }
    }
}

 

1
23/02/2019 17:52:34
simasim avatar simasim 5 Точки

Благодаря ти, че си се занимала с моята задача, проблемът е, че не мога да го направя с AddRange - подчертава ми го в червено. Това пробвах още първия път. Не знам как да го конвертирам явно. Пробвах какво ли не. 

  result.AddRange((int)(message)); 

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

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

е addrange приема масив от нещо а ти се опитваш да му подадеш int  няма как да стане, addrange oчаква масив от интс

1
ElviraPetkovaSvishtov avatar ElviraPetkovaSvishtov 152 Точки

Колегата ти е дал, много хубаво, сбито и кратко решение. За начина, по който аз ти предложих ето преправен кода ти -> https://pastebin.com/sZ978tfe.

Вероятно обясненията ми са били малко неясни, надявам се ще е по-ясно като е направено на код.

0
simasim avatar simasim 5 Точки

Супер много ти благодаря:)))

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