Pythonでフロント、ミドル、バックからプッシュまたはポップできるキューを実装するプログラム
フロント、ミドル、バックで値をプッシュおよびポップできるキューを実装するように求められたとします。
3つのケースすべてに対して、プッシュとポップを行うための2つの関数を実装する必要があります。特定の時間にキュー全体を表示する別の関数を実装する必要があります。
したがって、入力が次のような場合
push_from_back(10)
push_from_back(20)
push_from_front(30)
push_from_middle(40)
push_from_front(50)
show_queue()
pop_from_back()
show_queue()
pop_from_front()
show_queue()
pop_from_middle()
show_queue()、
その場合、出力は[50、30、40、10、20
になります[50、30、40、10]
[30、40、10]
[30、10]
これを解決するには、次の手順に従います-
-
array:=キューの配列表現
-
関数push_from_front()を定義します。これには価値があります
-
配列の0の位置に値を挿入します
-
-
関数push_from_middle()を定義します。これには価値があります
-
配列の位置(配列のサイズ)/ 2
に値を挿入します
-
-
関数push_from_back()を定義します。これには価値があります
-
配列の最後に値を挿入
-
-
関数pop_from_front()を定義します。
-
空でない場合は、配列から最初の要素を削除して返します
-
-
関数pop_from_middle()を定義します。
-
位置(配列の長さ-1)/ 2
の要素を削除して返します
-
-
関数pop_from_back()を定義します。
-
配列から最後の要素を削除して返します
-
-
関数show_queue()を定義します。これは入力を取りません
-
配列を返す
-
例
理解を深めるために、次の実装を見てみましょう
class Solution(): def __init__(self): self.array = [] def push_from_front(self, value): self.array.insert(0, value) def push_from_middle(self, value): self.array.insert(len(self.array) // 2, value) def push_from_back(self, value): self.array.append(value) def pop_from_front(self): return (self.array or [-1]).pop(0) def pop_from_middle(self): return (self.array or [-1]).pop((len(self.array) - 1) // 2) def pop_from_back(self): return (self.array or [-1]).pop() def show_queue(self): return self.array ob = Solution() ob.push_from_back(10) ob.push_from_back(20) ob.push_from_front(30) ob.push_from_middle(40) ob.push_from_front(50) print(ob.show_queue()) ob.pop_from_back() print(ob.show_queue()) ob.pop_from_front() print(ob.show_queue()) ob.pop_from_middle() print(ob.show_queue())
入力
ob = Solution() ob.push_from_back(10) ob.push_from_back(20) ob.push_from_front(30) ob.push_from_middle(40) ob.push_from_front(50) print(ob.show_queue()) ob.pop_from_back() print(ob.show_queue()) ob.pop_from_front() print(ob.show_queue()) ob.pop_from_middle() print(ob.show_queue())
出力
[50, 30, 40, 10, 20] [50, 30, 40, 10] [30, 40, 10] [30, 10]
-
配列内の最大の要素を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n): #maximum element max = arr[0] # traverse the whole loop for
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '