가격에 할인 적용
'$'
. 달러 기호가 앞에 오는 일련의 숫자인 경우 단어는 가격을 나타냅니다."$100"
, "$23"
및 "$6"
는 가격을 나타내지만 "100"
, "$"
및 "$1e5"
는 가격을 나타내지 않습니다. 문장을 나타내는 문자열
sentence
과 정수discount
가 제공됩니다. 가격을 나타내는 각 단어에 대해 가격 할인discount%
을 적용하고 문장의 단어를 업데이트합니다. 업데이트된 모든 가격은 정확히 소수점 둘째 자리로 표시되어야 합니다.수정된 문장을 나타내는 문자열을 반환합니다.
모든 가격에는 최대
10
자리가 포함됩니다.예 1:
입력: 문장 = "가게에 $1 $2 및 5$ 사탕이 있습니다", 할인 = 50
출력: "상점에 $0.50 $1.00 및 5$ 사탕이 있습니다."
설명:
가격을 나타내는 단어는 "$1"과 "$2"입니다.
예 2:
입력: 문장 = "1 2 $3 4 $5 $6 7 8$ $9 $10$", 할인 = 100
출력: "1 2 $0.00 4 $0.00 $0.00 7 8$ $0.00 $10$"
설명:
가격에 100% 할인을 적용하면 0이 됩니다.
가격을 나타내는 단어는 "$3", "$5", "$6"및 "$9"입니다.
각각은 "$0.00"로 대체됩니다.
제약:
1 <= sentence.length <= 105
sentence
는 영문 소문자, 숫자, ' '
, '$'
로 구성됩니다. sentence
에 선행 또는 후행 공백이 없습니다. sentence
의 모든 단어는 하나의 공백으로 구분됩니다. 10
자리입니다. 0 <= discount <= 100
해결책:
class Solution:
def discountPrices(self, sentence: str, discount: int) -> str:
words = sentence.split()
n = len(words)
for i in range(n):
if words[i][0] == '$' and words[i][1:].isnumeric():
val = words[i][1:]
newprice = eval(f"{val} * (1 - {discount} / 100)")
newprice = "{:.2f}".format(newprice)
words[i] = f"${newprice}"
return " ".join(words)
Reference
이 문제에 관하여(가격에 할인 적용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/apply-discount-to-prices-295f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)