在 Python 中查找是否可以进行整齐的杯子和架子排列


假设我们在数组 p 中有三种不同类型的杯子,在数组 q 中有碟子,以及 m 个架子,我们需要检查是否可以进行杯子和架子的整齐排列。

我们可以说,如果杯子和碟子的排列遵循以下条件,则该排列是整齐的:1. 任何架子都不能同时容纳杯子和碟子。2. 一个架子最多可以容纳 5 个杯子。3. 一个架子最多可以容纳 10 个碟子。

因此,如果输入类似于 p = [4, 3, 7] q = [5, 9, 10] m = 11,则输出将为 True,因为杯子的总数 = 14,需要 3 个架子,碟子的总数 = 24,需要 3 个架子。因此,所需的架子总数 = 3 + 3 = 6,小于给定的架子数量 m。

为了解决这个问题,我们将遵循以下步骤:

  • sum_p := 0,sum_q := 0

  • 对于 i 从 0 到 p 的大小,执行

    • sum_p := sum_p + p[i]

  • 对于 i 从 0 到 q 的大小,执行

    • sum_q := sum_q + q[i]

  • m_p :=(sum_p + 4) / 5

  • m_q :=(sum_q + 9) / 10

  • 如果 m_p + m_q <= m,则

    • 返回 True

  • 否则,

    • 返回 False

示例

让我们看看以下实现以获得更好的理解:

 实时演示

def is_valid(p, q, m):
   sum_p = 0
   sum_q = 0
   for i in range(0, len(p)):
      sum_p += p[i]
   for i in range(0,len(q)):
      sum_q += q[i]
   m_p = (sum_p + 5 - 1) / 5
   m_q = (sum_q + 10 - 1) / 10
   if(m_p + m_q <= m):
      return True
   else:
      return False
p = [4, 3, 7]
q = [5, 9, 10]
m = 11

print(is_valid(p ,q ,m))

输入

[4, 3, 7], [5, 9, 10], 11

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

True

更新于:2020 年 8 月 25 日

98 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告