LeetCode 🟡 2288. Apply Discount to Prices
🔗 🟡 2288. Apply Discount to Prices 1577
tags: 字串(String)
模擬(Simulation)
題意
一個句子包含了若干個由空格分隔的單字,每個單字可能包含數字、小寫字母和美元符號 '$'
。如果一個單字是以美元符號 $
開頭的一串數字,則它代表一個價格。
- 例如 代表價格,而 不是。
給定一個表示句子的字串 和一個整數 ,對於每個表示價格的單字,都套用 的折扣,並更新句子中的單字。所有更新後的價格需要用 二位小數 表示。
返回修改後的句子字串。
注意:所有價格最多包含 位數。
思路:模擬(Simulation)
先將輸入的句子分割成單字,然後遍歷每個單字檢查是否符合價格的形式,如果是的話就套用折扣,然後更新句子中的單字。最後將更新後的單字組合成修改後的句子後回傳即可。
由於折扣是固定的,所以可以先計算折扣的比例 ,這樣就不用每次都計算折扣比例。
但在 C++
的字串函數庫中,並沒有提供直接對字串進行格式化的函數,這裡使用 stringstream
來進行格式化。
複雜度分析
- 時間複雜度: ,其中 是 的長度。
- 空間複雜度: ,我們需要建立一個新的字串來存儲修改後的句子。
1 | class Solution: |
1 | class Solution { |
寫在最後
Cover photo is generated by @ゴリラの素材屋さん, thanks for their work!
用 Python
寫很簡單,但用 C++
需要查閱一下 stringstream
的用法才能寫出來。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 十六個天亮!
評論
WalineGiscus