Loading...
paskal06 avatar paskal06 2 Точки

[Programming Fundamentals] Regex - Exercises 4. Grocery Shop

Здравейте колеги,

Задачата ми дава 66/100. Това са моите регеглифи - (?<![: \t\w\S])[A-Z][a-z]+[:][0-9]+[.][0-9]{2}(?![\w\S]) . Мисля, че задачата ми дава проблем при имената на продуктите, тъй като сложих double.Parse на цените и задачата не гърми на тестовете. Най-вероятно съм изпуснал някой символ в регекса. Ще съм благодарен на едно рамо.

Това е решението ми - https://pastebin.com/f4yifi9j

 

 

 

4. Grocery Shop

You are given the task to write a program for a shop, which calculates the total price of products. The problem is the old system was full of bugs and you need to decrypt the data which you receive.

We know the following about the input data:

  • The product name starts with English capital letter and all other letters should be lower-case.
  • After that the product name should be followed by colon – ‘:
  • Price of the product, which should be floating point number with exactly two digits after the decimal point.

If you receive input, which does not follow the rules above - ignore it. If you receive new price for already existing product - rewrite the previous values.

At the end print the prices for every product. Order the products by price in descending order.

Input

You will receive indefinite count of string until you receive the command "bill".

Output

Print all prices ordered by price in descending order. Use the following format:

{nameOfTheProduct} costs {priceOfTheProduct}

Format the price to the 2nd decimal place.

Constraints

  • The average prices will be in the interval [0.01…50.00]

Examples

Input

Output

Bread:12.31

bRead:41.31

Cola-12.31

Cola:12.31

Cola:14.23

bill

Cola costs 14.23

Bread costs 12.31

 

Input

Output

Water:12.31

Water:12,42

Water:15.31

WaTer:30.20

Beer:15.12

bill

Water costs 15.31

Beer costs 15.12

 

Тагове:
0
Programming Fundamentals 08/08/2017 17:55:22
PavelD avatar PavelD 1 Точки

Пробвай този Regex ^[A-Z][a-z]+:\d+\.\d{2}$

Ето моето решение ако искаш да го погледнеш, в Judge ми дава 100/100

https://pastebin.com/zysX05EJ

0
MihailFernandes avatar MihailFernandes 3 Точки

Моля някой да посочи какво не ми е наред с кода.

https://pastebin.com/nFbFGDH9

Благодаря!

0
athristov avatar athristov 31 Точки

Здрасти колега, аз се помъчих доста с този регекс ^[A-Z][a-z]+:[0-9]+\.[0-9]{2} но ми гърмеше на 50/100, а с твоя мина перфектно. Може ли да ми обясниш защо е нужно $, след като му казвам, че трябва да са само 2 цифри и нищо друго [0-9]{2} ?

0
MihailFernandes avatar MihailFernandes 3 Точки

$ Означава, че задължително трябва да завършва с тези две цифри и нищо друго след тях. Ако го няма доларчето не означава, ча там приключва и може ако не дуго поне интервал да имаш което не минава на тестовете, по аналогичен начин пробрай без "^" в началото ще ти хваща хваща вход от типа "bRead:41.31". Пробвай с работещ вход и да сложиш интервал накрая и с двата регекса.

1
09/08/2017 12:05:04
PavelD avatar PavelD 1 Точки

Във Regex-а си изпуснал да escape-неш десетичната точка.

Иначе останалата част си изглежда добре.

0
paskal06 avatar paskal06 2 Точки

Благодаря! Решението ми тръгна с този регекс и също смених цените от string на double. 100/100.

https://pastebin.com/8jSCcWb1

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