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

スタックの要素がPythonでペアごとにソートされているかどうかを確認します


数字のスタックがあるとします。スタック内の値がペアごとに連続しているかどうかを確認する必要があります。これらのペアは増加または減少する可能性があります。スタックの値の数が奇数の場合、最上位の要素はペアから除外されます。また、チェック後、元のスタックコンテンツを保持する必要があります。

この問題を解決するために、push、pop、およびスタックが空かどうかを確認するという3つの操作をスタックで使用できます。

したがって、入力がstk =[5、6、-4、-5、12、11、6、7、22]のようである場合、最上位の要素22を削除した後のように、出力はTrueになります。ペアは[(5 、6)、(-4、-5)、(12、11)、(6、7)]すべてが連続しています。

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

  • temp:=stkから要素をポップし、tempにプッシュします
  • スタックスタックをクリアする
  • フラグ:=True
  • tempのサイズ>1の場合、do
    • item_first、item_second:=tempの上位2つの要素とそれらをポップします
    • if | item_first --item_second | 1ではない場合
      • フラグ:=False
    • item_firstとitem_secondをstkにプッシュします
  • tempのサイズが1と同じ場合、
    • 温度の上部をstkに押し込みます
  • フラグを返す

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

サンプルコード

def solve(stk):
   temp = stk[::-1]
   stk.clear()
 
   flag = True
   while len(temp) > 1: 
      item_first = temp[-1] 
      temp.pop() 
      item_second = temp[-1] 
      temp.pop() 
      if abs(item_first - item_second) != 1: 
         flag = False
 
      stk.append(item_first) 
      stk.append(item_second)
 
    if len(temp) == 1: 
      stk.append(temp[-1]) 
 
   return flag
   
stk = [5, 6, -4, -5, 12, 11, 6, 7, 22]
print(solve(stk))

入力

[5, 6, -4, -5, 12, 11, 6, 7, 22]

出力

True

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

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

  2. 要素の長さに従ってリストをソートするPythonプログラム?

    ここでは、1つのユーザー入力配列を使用し、要素の長さに従ってリストを並べ替える必要があります。ここでは、Python組み込み関数sorted()を使用します。 例 Input::[“mona”,”pp”,”aaa”] Lengths are [4,2,3] So, the sorted array should be [2,3,4] Output::[“pp”,”aaa”,”mona”] アルゴリズム Step 1: Input list element. Step 2: apply sorted (A,len) function. サンプルコード # To sort a list