Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで好きな日に好きなキャンディーを食べられるかどうかをチェックするプログラム


正の計算candiesCountの配列があるとします。ここで、candiesCount [i]は、i番目のタイプのキャンディーの数を示します。また、querys [i]に3つのパラメーター[favoriteType_i、favoriteDay_i、dailyCap_i]があるquerysという別の配列もあります。いくつかのルールがあります:

  • 0日目からキャンディーを食べ始めます。

  • 以前のi-1タイプのキャンディーをすべて食べていない限り、タイプiのキャンディーを食べることはできません。

  • すべてを食べるまで、1日に少なくとも1つのキャンディーを食べる必要があります。

これらのルールを維持しながら、クエリ結果ごとにブール値の配列を作成する必要があります。また、favoriteType_iタイプのキャンディーを、dailyCap_iキャンディーを毎日食べることなく、favoriteDay_iタイプで食べることができる場合、i番目のエントリはtrueです。ルール2に従うことで、同じ日にさまざまな種類のキャンディーを食べることができます。

したがって、入力がcandiesCount =[7,4,5,3,8]、querys =[[0,2,2]、[4,2,4]、[2,13,100]]のような場合、出力は

のため、[true、false、true]になります
  • 0日目と1日目にタイプ0のキャンディーを2つ食べると、タイプ0のキャンディーを1日目に食べます

  • 私たちは毎日最大4つのキャンディーを食べることができます。毎日4個のキャンディーを食べる場合、0日目にタイプ0のキャンディーを4個、1日目にタイプ0、タイプ1のキャンディーを4個食べます。2日目には、タイプ1、タイプ2の4個しか食べられません。キャンディーなので、2日目にタイプ4のキャンディーを食べることはできません。

  • 毎日1つのキャンディーを食べることができます。13日目にタイプ2のキャンディーを食べます。

これを解決するには、次の手順に従います-

  • sumcandy:=1つの要素を持つリストcandiesCount[0]

  • index:=1

  • インデックス

    • sumcandyの最後に(sumcandy [index-1] + candiesCount [index])を挿入します

    • インデックス:=インデックス+ 1

  • sumcandyの最後に0を挿入します

  • res:=新しいリスト

  • クエリのそれぞれについて、実行します

    • typ:=each [0]

    • 日:=各[1]

    • cap:=each [2]

    • day + 1> sumcandy [typ]または(day + 1)* cap <=sumcandy [typ-1]の場合、

      • resの最後にFalseを挿入します

    • それ以外の場合

      • resの最後にTrueを挿入します

  • 解像度を返す

理解を深めるために、次の実装を見てみましょう-

def solve(candiesCount, queries):
   sumcandy = [candiesCount[0]]
   index=1
   while index < len(candiesCount):
      sumcandy.append(sumcandy[index-1] + candiesCount[index])
      index+=1
   sumcandy.append(0)
   res=[]
   for each in queries:
      typ=each[0]
      day=each[1]
      cap=each[2]
      if day+1 > sumcandy[typ] or (day+1)*cap <= sumcandy[typ-1]:
         res.append(False)
      else:
         res.append(True)
   return res

candiesCount = [7,4,5,3,8]
queries = [[0,2,2],[4,2,4],[2,13,100]]
print(solve(candiesCount, queries))

入力

[7,4,5,3,8], [[0,2,2],[4,2,4],[2,13,100]]

出力

[True, False, True]

  1. Pythonでノードを交換することで2つのツリーを形成できるかどうかを確認するプログラム

    2つのツリーがあるとすると、ノードの左右のサブツリーを何度でも交換して、最初のツリーを2番目のツリーに変換できるかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- que1:=最初はroot0のキュー que2:=最初はroot1のキュー que1とque2は空ではありませんが、実行してください temp1:=新しいリスト、temp2:=新しいリスト values1:=新しいリスト、values2:=新しいリスト que1とque2に含まれる要素の数が

  2. リストが空かどうかをチェックするPythonプログラム?

    空のリストが与えられました。私たちの仕事は、このリストが空かどうかを確認することです。ここでチェックするのは暗黙のチェック方法です。 アルゴリズム Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. サンプルコード # Python code to check for empty list def checklist(A): if not A: return 1 else: return 0 # Driver