用 Python 编写程序,计算达到阈值百分比所需的 5 星评论数量

pythonserver side programmingprogramming更新于 2025/12/17 10:20:17

假设我们有一个名为 reviews 的列表和一个阈值 t。reviews[i] 中的每个项目都有 [x, y],表示产品 i 有 x 个 5 星评级和 y 个评论。我们必须找到所需的最少额外 5 星评论数量,以便这些项目列表中的 5 星评论百分比至少为 t%。

因此,如果输入为 reviews = [[3, 4],[1, 2],[4, 6]] 阈值 = 78,则输出将为 7,因为总共有 8 个 5 星评论和 12 个评论。要达到 78% 的 5 星评价,我们需要另外 7 条 5 星评价。

要解决这个问题,我们将遵循以下步骤 −

  • a := 0, b := 0

  • 对于评论中的每个 5 星计数 c 和评论计数 d,执行

    • a := a + c

    • b := b + d

  • 如果 a * 100 >= t * b,则

    • 返回 0

  • delta := t * b - 100 * a

  • 返回 floor (delta +(99 - t))/(100 - t)

示例

让我们看看下面的实现以便更好地理解

def solve(reviews, t):
   a = 0
   b = 0
   for c, d in reviews:
      a += c
      b += d
   if a * 100 >= t * b:
      return 0
   delta = t * b - 100 * a
   return (delta + (99 - t)) // (100 - t)

reviews = [
   [3, 4],
   [1, 2],
   [4, 6]
]
t = 78
print(solve(reviews, t))

输入

[[3, 4], [1, 2],[4, 6] ],78

输出

7

相关文章


有用资源