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

Pythonでスタックまたはキューでの移動が可能かどうかを確認します


バイナリリストが1つあるとします。ここで、1はプッシュ操作を示し、0はスタックまたはキューでのポップ操作を示します。可能な一連の操作が有効かどうかを確認する必要があります。

したがって、入力がnums =[1,0,1,1,0,1]のような場合、シーケンスは[Push、Pop、Push、Push、Pop、Push]であるため、出力はTrueになります。これらの操作が有効になるように、空のリストから要素をポップします。

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

  • push_count:=0
  • 範囲0からnums-1のサイズのiの場合、do
    • nums [i]が1の場合、
      • push_count:=push_count + 1
    • それ以外の場合、
      • push_count:=push_count-1
    • push_count <0の場合、
      • Falseを返す
  • Trueを返す

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

def solve(nums):
   push_count = 0
   for i in range (len(nums)):
      if nums[i]:
         push_count += 1
      else:
         push_count -= 1
      if push_count < 0:
         return False
   return True
nums = [1,0,1,1,0,1]
print(solve(nums))

入力

[1,0,1,1,0,1]

出力

True

  1. Python-リスト内のすべての要素が同じかどうかを確認します

    リスト要素としてリスト内で1つの単一の値が繰り返されているかどうかを確認する必要がある場合があります。以下のPythonプログラムを使用して、このようなシナリオを確認できます。さまざまなアプローチがあります。 forループの使用 このメソッドでは、リストから最初の要素を取得し、従来のforループを使用して、各要素を最初の要素と比較し続けます。値がどの要素とも一致しない場合、ループから抜け出し、結果はfalseになります。 例 List = ['Mon','Mon','Mon','Mon'] result = True # Get

  2. キューモジュールを使用したPythonでのスタックとキュー

    Pythonでは、スタックとキューのデータ構造を実装するのは非常に簡単です。スタックは「後入れ先出し」の原理で動作するため、スタックはLIFOと呼ばれ、キューは「先入れ先出し」の原理で動作するため、キューはFIFOと呼ばれ、Pythonの組み込み関数は短くてシンプルなコード。 キューモジュールは、マルチプロデューサー、マルチコンシューマーのキューを実装します。これは、情報を複数のスレッド間で安全に交換する必要があるスレッドプログラミングで特に役立ちます。このモジュールのQueueクラスは、必要なすべてのロックセマンティクスを実装し、Pythonでのスレッドサポートの可用性に依存します。 こ