一个电信ip做网站卡不卡,西湖区住房和城市建设局网站,WordPress微说,wordpress安装主机博客主页#xff1a;誓则盟约系列专栏#xff1a;IT竞赛 专栏关注博主#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出#xff0c;及时修改感谢大家点赞#x1f44d;收藏⭐评论✍ 2288.价格减免 【中等】
题目#xff1a;
句子 是由若干个单词组成的字符…博客主页誓则盟约系列专栏IT竞赛 专栏关注博主后期持续更新系列文章如果有错误感谢请大家批评指出及时修改感谢大家点赞收藏⭐评论✍ 2288.价格减免 【中等】
题目
句子 是由若干个单词组成的字符串单词之间用单个空格分隔其中每个单词可以包含数字、小写字母、和美元符号 $ 。如果单词的形式为美元符号后跟着一个非负实数那么这个单词就表示一个 价格 。
例如 $100、$23 和 $6 表示价格而 100、$ 和 $1e5 不是。
给你一个字符串 sentence 表示一个句子和一个整数 discount 。对于每个表示价格的单词都在价格的基础上减免 discount% 并 更新 该单词到句子中。所有更新后的价格应该表示为一个 恰好保留小数点后两位 的数字。
返回表示修改后句子的字符串。
注意所有价格 最多 为 10 位数字。 示例 1
输入sentence there are $1 $2 and 5$ candies in the shop, discount 50
输出there are $0.50 $1.00 and 5$ candies in the shop
解释
表示价格的单词是 $1 和 $2 。
- $1 减免 50% 为 $0.50 所以 $1 替换为 $0.50 。
- $2 减免 50% 为 $1 所以 $1 替换为 $1.00 。
示例 2
输入sentence 1 2 $3 4 $5 $6 7 8$ $9 $10$, discount 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 10**5sentence 由小写英文字母、数字、 和 $ 组成sentence 不含前导和尾随空格sentence 的所有单词都用单个空格分隔所有价格都是 正 整数且不含前导零所有价格 最多 为 10 位数字0 discount 100 分析问题 这道题就是在考字符串的切割和替换我们可以按照题目要求进行模拟然后进行操作。 首先我们将给定的字符串 sentence 根据空格进行分割得到其中的每一个单词。随后我们遍历每个单词如果该单词
第一个元素是‘$’。后续的元素都是数字。 我们就进行字符串的替换操作这里可以直接根据列表的索引来替换列表内的元素。 替换完成之后我们还需要把列表转为字符串并且每个元素之间以空格分开将其输出。 这里需要注意的是虽然每个元素后面都有空格分开但是第一个元素前面和最后一个元素的后面是不需要空格的这里的格式要注意。 代码实现
class Solution:def discountPrices(self, sentence: str, discount: int) - str:key(100-discount)/100def pan(s:str):for j in s:if j in 0123456789:continueelse:return Falsereturn Truels[x for x in sentence.split()]for i in range(len(ls)):if len(ls[i])1 and ls[i][0]$:vels[i][1:]if pan(ve):kkstr(%.2f%(int(ve)*key))bp$kkls[i]bpsfor p in range(len(ls)):sls[p]if p!len(ls)-1:s return s总结
详细解释 首先计算折扣系数 key 通过 (100 - discount) / 100 得到。定义一个内部函数 pan 用于判断一个字符串是否仅由数字组成。将输入的字符串 sentence 按空格分割为一个列表 ls 。遍历列表 ls 中的每个元素如果元素长度大于 1 且以 $ 开头提取后续部分 ve 。通过 pan 函数判断 ve 是否仅由数字组成如果是则进行折扣计算将结果格式化为保留两位小数的字符串 kk 并拼接 $ 得到新的价格 bp 替换原列表中的元素。最后将处理后的列表元素重新拼接为字符串并返回。 考察内容 字符串的操作包括分割、提取子串、拼接。列表的遍历和元素修改。自定义函数的定义和使用用于判断字符串的组成。数值的计算和格式化输出。 可以学到 如何处理包含特定格式的字符串数据。如何根据条件对列表中的元素进行修改和替换。如何定义简单的辅助函数来完成特定的判断逻辑。数值的计算与格式化控制以满足实际需求。 “你说过人最大的敌人是自己。”——《我的前半生》