Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
A sentence is a string of single-space separated words where each word can contain digits, lowercase letters, and the dollar sign '$'
. A word represents a price if it is a sequence of digits preceded by a dollar sign.
"$100"
, "$23"
, and "$6"
represent prices while "100"
, "$"
, and "$1e5"
do not.You are given a string sentence
representing a sentence and an integer discount
. For each word representing a price, apply a discount of discount%
on the price and update the word in the sentence. All updated prices should be represented with exactly two decimal places.
Return a string representing the modified sentence.
Note that all prices will contain at most 10
digits.
Example 1:
Input: sentence = "there are $1 $2 and 5$ candies in the shop", discount = 50
Output: "there are $0.50 $1.00 and 5$ candies in the shop"
Explanation:
The words which represent prices are "$1" and "$2".
- A 50% discount on "$1" yields "$0.50", so "$1" is replaced by "$0.50".
- A 50% discount on "$2" yields "$1". Since we need to have exactly 2 decimal places after a price, we replace "$2" with "$1.00".
Example 2:
Input: sentence = "1 2 $3 4 $5 $6 7 8$ $9 $10$", discount = 100
Output: "1 2 $0.00 4 $0.00 $0.00 7 8$ $0.00 $10$"
Explanation:
Applying a 100% discount on any price will result in 0.
The words representing prices are "$3", "$5", "$6", and "$9".
Each of them is replaced by "$0.00".
Constraints:
1 <= sentence.length <= 105
sentence
consists of lowercase English letters, digits, ' '
, and '$'
.sentence
does not have leading or trailing spaces.sentence
are separated by a single space.10
digits.0 <= discount <= 100
class Solution {
public String discountPrices(String sentence, int discount) {
String x[] = sentence.split(" ");
StringBuilder sb = new StringBuilder();
for (String s : x) {
if (isPrice(s)) sb.append(calc(Double.parseDouble(s.substring(1)), discount) + " ");
else sb.append(s + " ");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
boolean isPrice(String s) {
return s.startsWith("$") && s.substring(1).matches("\\d+");
}
String calc(double num, double discount) {
double ans = num - (double) ((double) num * discount / 100.00);
return "$" + String.format("%.2f", ans);
}
}
#define ll long long int
#define ld long double
class Solution {
public:
string check(string s,int d)
{
int c=0;
for(char ch:s)
{
if(isdigit(ch))
{
c++;
}
}
string res="";
if(c!=s.length()||c==0)
return "-1";
else
{
ll zz=stoll(s);
ll dd=(d)*zz;
ld xx=dd/100.0;
ld rr=zz-xx;
res=to_string(rr);
int x=4;
while(x--)
res.pop_back();
}
return res;
}
string discountPrices(string s, int d) {
s+=' ';
int n=s.length();
int left=0;
string ans="";
for(int i=0;i<n;i++)
{
if(s[i]==' ')
{
string str=s.substr(left,i-left);
bool ok=false;
if(str[0]=='$')
{
string z=str.substr(1);
string a=check(z,d);
if(a!="-1")
{
ans+='$';
ans+=a;
ans+=' ';
ok=true;
}
else
{
ans+=str;
ans+=' ';
}
}
else
{
if(!ok)
{
ans+=str;
ans+=' ';
}
}
left=i+1;
}
}
ans.pop_back();
return ans;
}
};
class Solution:
def discountPrices(self, sentence: str, discount: int) -> str:
s = sentence.split() # convert to List to easily update
m = discount / 100
for i,word in enumerate(s):
if word[0] == "$" and word[1:].isdigit(): # Check whether it is in correct format
num = int(word[1:]) * (1-m) # discounted price
w = "$" + "{:.2f}".format(num) #correctly format
s[i] = w #Change inside the list
return " ".join(s) #Combine the updated list
```
In our experience, we suggest you solve this Apply Discount to Prices LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.
If you are stuck anywhere between any coding problem, just visit Queslers to get the Apply Discount to Prices LeetCode Solution.
I hope this Apply Discount to Prices LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.
This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.
Keep Learning!
More Coding Solutions >>