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

Pythonの最小スタック


ここでは、一定時間で最小要素をプッシュ、ポップ、トップ、および取得できるスタックを作成する方法を説明します。したがって、関数はpush(x)、pop()、top()、getMin()

になります。

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

  • スタックを最小要素で無限大として初期化します
  • プッシュ操作の場合push(x)
    • x
    • xをスタックにプッシュします
  • ポップ操作の場合pop()
    • t:=最上位の要素
    • スタックからtを削除
    • tがminの場合、min:=スタックの最上位要素
  • トップ操作の場合top()
    • 一番上の要素を返すだけです
  • getMin操作の場合getMin()
    • 最小要素を返す

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

class MinStack(object):
   min=float('inf')
   def __init__(self):
      self.min=float('inf')
      self.stack = []
   def push(self, x):
      if x<=self.min:
         self.stack.append(self.min)
         self.min = x
      self.stack.append(x)
   def pop(self):
      t = self.stack[-1]
      self.stack.pop()
      if self.min == t:
         self.min = self.stack[-1]
         self.stack.pop()
   def top(self):
      return self.stack[-1]
   def getMin(self):
      return self.min
m = MinStack()
m.push(-2)
m.push(0)
m.push(-3)
print(m.getMin())
m.pop()
print(m.top())
print(m.getMin())

入力

m = MinStack()
m.push(-2)
m.push(0)
m.push(-3)
print(m.getMin())
m.pop()
print(m.top())
print(m.getMin())

出力

-3
0
-2

  1. TkinterPythonの折りたたみ可能なペイン

    TkinterはPythonのGUI構築ライブラリです。この記事では、折りたたみ可能なペインを作成する方法を説明します。 GUIキャンバス上に大量のデータを表示する必要があるが、常に表示したくない場合に便利です。折りたたみ可能になっているため、必要に応じて表示できます。 以下のプログラムは、矢印を拡大および縮小した後の結果を表示する折りたたみ可能なペインを作成します。コードコメントは、各ステップで採用するアプローチを示しています。 例 from tkinter import * import tkinter as tk from tkinter import ttk from tkinter

  2. Pythonでの継承

    この記事では、Python3.xでの継承と拡張クラスについて学習します。またはそれ以前。 継承は実際の関係をうまく表し、再利用性を提供し、推移性をサポートします。開発時間が短縮され、メンテナンスが容易になり、拡張も容易になります。 継承は大きく5つのタイプに分類されます- シングル 複数 階層的 マルチレベル ハイブリッド 上の図に示されているように、継承とは、実際に親クラスのオブジェクトを作成せずに、他のクラスの機能にアクセスしようとするプロセスです。 ここでは、単一の階層型継承の実装について学習します。 単一継承 例 # parent class class Studen