Ctrl K

Ценники со скидкой

Средняя
Строка text — это слова, разделённые одиночными пробелами. Слова состоят из строчных латинских букв, цифр и знака $. Слово считается **ценой**, если это знак $, за которым идут одни цифры (хотя бы одна): например, "$15" — цена, а "15", "$", "$1x" и "$15$" — нет. В магазине распродажа: все цены снижаются на percent процентов. Замените каждую цену в строке на новую, записанную ровно с двумя знаками после точки (например, "$7.50" или "$3.00"), а остальные слова оставьте без изменений. Верните получившуюся строку.
Пример 1
text="lamp $40 and bulbs $3 each", percent=25 → 'lamp $30.00 and bulbs $2.25 each'

Цены — «$40» и «$3». Со скидкой 25% они становятся «$30.00» и «$2.25».

Пример 2
text="$7 7$ $7$ $ $x7 $7", percent=10 → '$6.30 7$ $7$ $ $x7 $6.30'

Ценами считаются только два слова «$7» — они превращаются в «$6.30». «7$», «$7$», «$» и «$x7» ценами не являются и остаются как есть.

Пример 3
text="free shipping", percent=50 → 'free shipping'

Цен нет, строка не меняется.

Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • text состоит из строчных латинских букв, цифр, пробелов и знака $
  • Нет пробелов в начале и в конце, слова разделены ровно одним пробелом
  • Каждая цена — положительное число без ведущих нулей и не длиннее 10 цифр
  • 0 ≤ percent ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный фрагмент без повторов СредняяСамый длинный зеркальный кусок СредняяЗмейка по строкам СредняяСнисходительное чтение числа СредняяЧисло римскими цифрами Средняя
загружаем Python…
Вход
text="lamp $40 and bulbs $3 each", percent=25
Ожидается
'lamp $30.00 and bulbs $2.25 each'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 85 тестов на сервере, включая скрытые.