Loading...
EvgeniJD avatar EvgeniJD 35 Точки

Stream Of Letters - въпрос за отпечатване на същия ред javaScript

1.Поток от букви

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

Вход

От конзолата се чете поредица от редове с един символ на всеки до получаване на командата "End".

Изход

На конзолата се печата на един ред всяка дума след тайната команда, следвана от интервал.

Примерен вход и изход

Вход

Изход

Обяснения

H

n

e

l

l

o

o

c

t

c

h

o

e

r

e

n

e

End

Hello there

"H", "n", "e", "l", "l", "o", "o", "c", "t", "c", "h", "o", "e", "r", "e", "n", "e" са всички букви прочетени от конзолата. Първо се чете "H" и се прибавя към думата. След това се чете "n". То е част от командата и не се прибавя към думата тъй като се среща за първи път. След това се четат "e", "l", "l" от конзолата и се добавят към думата. Прочита се "o" и се отбелязва като срещната, но не се добавя към думата. След това се прочита "o" отново и се записва. Следва "c" и вече  са налични символите за тайната команда. Отпечатва се "Hello " и се следи за нова тайна команда. Прочита се "t" и се запазва в новата дума. След това "c" e част от новата команда и не се добавя. Прочита се  "h" и се добавя към думата. Следва "o", което e част от новата команда.  Прочитат се "e", "r", "e" и се добавят към думата. Приема се  "n" и тайната команда е завършена. Печата се "there ". Прочита се "e" и се добавя към нова дума. Получава се командата "End" и програмата приключва.

Крайният резултат е "Hello there " .

 

Не знам как се печата на същия ред. Моля за помощ. Това е моя код https://pastebin.com/dTuE5sju , но ако някой може да ми даде друго работещо решение, пак бих бил благодарен.

 

Тагове:
0
Programming Basics 19/12/2019 22:39:31
pupushu avatar pupushu 5 Точки

Би могъл да направиш let result = '', след това да добавяш в резултата буквите и да печаташ резултата когато е готов за печат

0
EvgeniJD avatar EvgeniJD 35 Точки

По условие трябва да логна думата, когато получа трите ключови букви и judge очаква точно това. На C# нямах проблеми с тая задача, но тук ми е все още мътно.

0
pupushu avatar pupushu 5 Точки

Сега ти погледнах кода, според мен няма да имаш нужда от печатане на същия ред ако просто word += symbol го преместиш преди проверките за печатане. Иначе печатането на същия ред го има тук, но не мисля, че това ти трябва в този курс.

1
EvgeniJD avatar EvgeniJD 35 Точки

Предпочитам да видя работещо решение. Прекалено много време ми отне тази задача. Поиграх си да я преработя и сега word += symbol; е преди проверката, и може би самата задача е по-четима, но в judge ми дава 40/100. Ето и новото решение: https://pastebin.com/QAGRUjZm

0
20/12/2019 12:21:36
pupushu avatar pupushu 5 Точки

Ето ти работещо тук, виж го, разликата е в добавена още една променлива която да печаташ накрая. По принцип мисля, че би било по - добре за теб самият да се почупиш малко повече, но сам да стигаш до работещите решения. :) Наздраве

0
EvgeniJD avatar EvgeniJD 35 Точки

Благодаря ти! Напълно си прав за главоблъскането по трудни задачи - те наистина помагат най-много. Просто условието на задачата ме обърка. Смятах, че след тайните букви трябва задължително да се отпечата думата, а не да се запазват в променлива, която да се отпечата най-накрая.

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