Loading...
a.savov avatar a.savov 1 Точки

02. Ad Astra - Final exam retake - August 2020

Здравейте,

Решавам стари изпити и не мога да измисля защо с този код не получавам повече от 33/100 на задачата.

Линк: https://pastebin.com/ZKkNuw0N
Линк към джъдж: https://judge.softuni.bg/Contests/Practice/Index/2525#1

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

Тагове:
0
JavaScript Fundamentals
krasizorbov avatar krasizorbov 548 Точки
Best Answer

function solution(input) {
  let string = input.shift();
  let items = [];
  let pattern = /([|#])(?<name>[A-Za-z\s]+)\1(?<date>\d{2}\/\d{2}\/\d{2})\1(?<calories>\d{1,5})\1/g
  let totalCal = 0
  let regex = pattern.exec(string);
  while (regex) {
      items.push({ item: regex[2], day: regex[3], cal: regex[4] });
      totalCal += Number(regex[4])
      regex = pattern.exec(string);
  }
  console.log(`You have food to last you for: ${Math.floor(totalCal / 2000)} days!`);
  for (let i = 0; i < items.length; i++) {
      console.log(`Item: ${items[i].item}, Best before: ${items[i].day}, Nutrition: ${items[i].cal}`);
  }
}

Ако искаш си го направи с групи, Аз го направих с индексите директно и смених асоциативния масив с масив защото могат да подадат един и същ item два или повече пъти при което само го презаписваш и в последствие няма как да ги отпечаташ! Така че пробвай и по твоя начин с асоциативен масив може пък да стане!

Ако ползваш групи ще трябва да ги дефинираш:

let groups = string.match(pattern).groups;
0
12/10/2020 10:09:23
a.savov avatar a.savov 1 Точки

Благодаря!
Малко се чудих дали не може да има дубликати, но след коментара ви вече преработих с вложени масиви, за да запазва и повторения - така вече даде 100/100 :-)

0
kdew0 avatar kdew0 8 Точки

Линк към решение на C#, дава 100/100.

https://softuni.bg/forum/35118/problem-s-zadacha-ad-astra#answer-65984

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