-
Pythonを使用して括弧文字列のバランスを取るための最小挿入を見つけるプログラム
開き括弧と閉じ括弧(および)を持つ文字列sがあるとします。 − の場合、括弧文字列はバランスが取れていると言えます。 左括弧(には対応する2つの連続した右括弧))があります。 左括弧(は、対応する2つの連続する右括弧))の前に配置する必要があります。 したがって、たとえば、「())」、「())(())))」はバランスが取れていますが、「)()」、「()))」はバランスが取れていません。そのような文字列がある場合、文字列のバランスをとるために括弧の数(開くまたは閉じる)を数える必要があります。 したがって、入力がs =(())))))のようである場合、出力は1になります。これ
-
Pythonを使用してn番目のバイナリ文字列のK番目のビットを見つけるプログラム
2つの正の値nとkがあるとすると、次のルールを使用してバイナリ文字列S_nを作成できます- S_1 =0 1 ここで、reverse(x)は反転された文字列xを返し、invert(x)はxのすべてのビットを反転します。 これらは、そのような4つの文字列の例です S_1 =0 S_2 =011 S_3 =0111001 S_4 =011100110110001 S_nでk番目のビットを見つける必要があります。 したがって、入力がn =4 k =10の場合、S_4 =011100110110001であるため、出力は1になり、10番目の
-
Pythonを使用して、合計がターゲットに等しい重複しないサブ配列の最大数を見つけるプログラム
配列numsとtargetという別の値があるとします。次に、それぞれの異なるサブアレイの値の合計がターゲットと同じになるように、空ではなく重複しないサブアレイの最大数を見つける必要があります。 したがって、入力がnums =[3,2,4,5,2,1,5] target =6のような場合、2つのサブ配列[2,4]と[1,5]があるため、出力は2になります。その合計は6と同じです。 これを解決するには、次の手順に従います- t:=単一要素0の新しいセット temp:=0 ans:=0 numsの各iについて、実行します temp:=temp + i p
-
Pythonを使用して配列を等しくするための最小操作を見つけるプログラム
値がnであると仮定し、n個の要素を持つ配列numを考えます。ここで、すべてのiに対してarr [i] =(2 * i)+1です。これで、1つの操作で、2つのインデックスxとyを選択できます。ここで、0 <=x、y
-
Pythonを使用してすべてのノードに到達するための頂点の最小数を見つけるプログラム
n個の頂点とノードに0からn-1までの番号が付けられた有向非巡回グラフがあるとします。グラフはエッジリストで表されます。ここで、edges [i] =(u、v)はノードuからノードv。グラフ内のすべてのノードに到達できる頂点の最小セットを見つける必要があります。 (頂点は任意の順序で返すことができます)。 したがって、入力が次のような場合 これらの2つの頂点は他のどの頂点からも到達できないため、出力は[0,2,3]になります。したがって、それらから開始すると、すべてをカバーできます。 これを解決するには、次の手順に従います- n:=エッジのサイズ all_nodes:=
-
Pythonを使用してターゲット配列を作成するための関数呼び出しの最小数を見つけるプログラム
次の関数定義があるとします。 def modify(arr, op, index): if op == 0: arr[index] += 1 if op == 1: for i in range(len(arr)): arr[i] *=2 同じサイズの1つのゼロ配列から特定の配列番号を作成するために必要な関数呼び出しの最小数を見つける必要がありますか? したがって、入力がnums =[1,
-
Pythonを使用して取得できるコインの最大数を見つけるためのプログラム
3 * n個のコインの山があり、それらのサイズがさまざまであるとすると、3人のプレーヤーが-のようなゲームをプレイしています。 各ステップで、player1はコインの山を3つ選択します。 彼が選んだのは、Player2が最大コイン数の山を選ぶことです。 Player1は、コインの最大数で次の山を選びます。 Player3が最後の山を選びます。 コインの山がなくなるまで、これらの手順を繰り返します。 ここで、piles [i]がi番目のパイル内のコインの数である、pilesと呼ばれる整数の配列がある場合、Player1が持つことができるコインの最大数を見つける
-
Pythonを使用してサイズMの最新のグループを見つけるプログラム
1からnまでの数の順列を保持している配列arrがあるとします。サイズnのバイナリ文字列があり、最初はそのすべてのビットがゼロに設定されている場合。ここで、1からnまでの各ステップi(バイナリ文字列とarrの両方でインデックス作成は1から始まります)で、位置arr [i]のビットは1に設定されます。別の値mもあり、最新のものを見つける必要があります。サイズmのもののグループが存在するステップ。ここで、1のグループとは、どちらの方向にも拡張できないような1の連続したサブストリングを意味します。正確にmの長さのグループが存在する最新のステップを見つける必要があります。そのようなグループが見つからない
-
Pythonを使用してバイナリツリーの右側のノードを見つけるプログラム
バイナリツリーが提供されているとします。また、ノード(「u」という名前)へのポインターが与えられ、提供されたノードのすぐ右にあるノードを見つける必要があります。特定のノードの右側にあるノードは同じレベルにとどまる必要があり、特定のノードはリーフノードまたは内部ノードのいずれかになります。 したがって、入力が次のような場合 u =6の場合、出力は8になります。 ノード6の右側にあるノードはノード8であるため、値8が返されます。 これを解決するには、次の手順に従います- ルートが空の場合、 nullを返す dq:=新しい両端キュー dqの最後にルートを挿入
-
Pythonを使用して2つの式ツリーが同等であるかどうかを確認するプログラム
2つの式ツリーが提供されているとします。 2つの式ツリーをチェックし、式ツリーが同様の値を生成するかどうかを判断するプログラムを作成する必要があります。 2つの式ツリーは順番に提供され、一致する場合はTrue値を返し、一致しない場合はFalse値を返します。 したがって、入力が次のような場合 その場合、出力はTrueになります。 2つの式ツリーは同じ値に評価されます。 これを解決するには、次の手順に従います。 関数dfs()を定義します。これはノード、dicを取ります ノードが空の場合、 戻る ノードの左側とノードの右側が空でない場合、 dic
-
Pythonを使用して式ツリーを構築および評価するプログラム
式ツリーのポストオーダートラバーサルが与えられたとします。与えられたポストオーダートラバーサルから式ツリーを構築してから、式を評価する必要があります。式ツリーのルートとツリーの評価値を返します。 したがって、入力が次のような場合 その場合、出力は-7になります。 ツリーの入力として指定された接尾辞の順序は、[1、 2、+、 3、 4、+、*]です。評価すると、式は(1 – 2)*(3 + 4);になります。これは-7に相当します。 これを解決するには、次の手順に従います- 左=0右=1 関数evaluate()を定義します。これが定着します ルートの値が数値の場
-
Pythonを使用してリンクリストとして指定された2つの多項式を追加するプログラム
2つの多項式が与えられ、2つの多項式の加算を見つける必要があるとします。多項式は、リンクリストとして表す必要があります。多項式の項は、リンクリストノードとして表されます。各リンクリストノードには、係数値、電力値、および次のリンクリストノードへのポインターが含まれます。 2つのリンクリスト多項式を追加した3番目のリンクリストを返す必要があります。 したがって、入力が次のような場合 1x ^ 1 + 1x ^ 2=0および2x^1 + 3x ^ 0 =0、 その場合、出力は3x ^ 1 + 1x ^ 2 + 3x ^ 0 =0になります。 これを解決するには、次の手順に従います-
-
Pythonを使用してバイナリツリーの最も低い共通の祖先を見つけるプログラム
二分木と2つの特定のノードxとyが与えられたとします。二分木から2つのノードの最も低い共通の祖先を見つける必要があります。二分木の最も低い共通の祖先は、ノードxとyの両方がの子孫である最も低いノードです。また、特定のノードはそれ自体の子孫になることもできます。ノードを見つけて出力として返す必要があります。 したがって、入力が次のような場合 およびx=2、y =4;その場合、出力は3になります。 ノード2と4の子孫であるノードは3です。したがって、3が返されます。 これを解決するには、次の手順に従います- 関数dfs()を定義します。これはノードを取ります ノードがnu
-
Pythonを使用して親ポインターを使用して、バイナリツリーの最も低い共通の祖先を見つけるプログラム
二分木と2つの特定のノードxとyが与えられたとします。二分木から2つのノードの最も低い共通の祖先を見つける必要があります。二分木の最も低い共通の祖先は、ノードxとyの両方が子孫である最も低いノードです。特定のノードは、それ自体の子孫になることもできます。ノードを見つけて出力として返す必要があります。 ツリーのノード構造は次のようになります- TreeNode: data: <integer> left: <pointer of TreeNode> right: <pointer of
-
Pythonを使用して誤った二分木を修正するプログラム
問題のある二分木が与えられたとしましょう。ノードの右の子ポインタの1つが、バイナリツリーの同じレベルにある別のノードを誤って指しています。したがって、この問題を修正するには、このエラーが発生しているノードを見つけて、誤って指しているノードを除くそのノードとその子孫を削除する必要があります。固定二分木のルートノードを返します。 したがって、入力が次のような場合 4と6の間に誤ったリンクがあることがわかります。4の右の子ポインタは6を指しています。 次に、出力、修正されたツリーの順序の表現は、-2、3、5、6、7、8になります。 ノード4は、ノード6への誤ったリンクがあるため、削除さ
-
Pythonを使用して二分木のルートを変更するプログラム
二分木と二分木のリーフに位置するノードが与えられたと仮定します。リーフノードを二分木のルートノードにする必要があります。次のようにできます- ノードに左の子がある場合、そのノードは右の子になります。 ノードの親はその左の子になります。このプロセスでは、そのノードへの親ノードのリンクがnullになるため、子は1つだけになります。 ツリーのノード構造は次のようになります- TreeNode: data: <integer> left: <pointer of TreeNode>
-
Pythonを使用して、特定のノードのバイナリツリーの最も低い共通の祖先を見つけるプログラム
バイナリツリーが与えられ、ツリー内のすべてのノードの最も低い共通の祖先を見つけるように求められたとします。バイナリツリーの最も低い共通の祖先は、ノードx1、x2、x3、....、xnが子孫である最も低いノードです。特定のノードは、それ自体の子孫になることもできます。ノードを見つけて出力として返す必要があります。入力は、ツリーのルートノードと、祖先を見つける必要があるノードのリストです。 したがって、入力が次のような場合 祖先を見つける必要があるノードのリストは[6、8]です。その場合、出力は7になります。 ノード6と8が子孫である最下位ノードが7であるため、出力は7です。 これを
-
Pythonを使用して最長のパリンドロームサブシーケンスの長さを見つけるプログラム
文字列が与えられたとします。長さが均一で、中央を除いて2つの連続する同じ文字を含まないパリンドロームサブシーケンスを見つける必要があります。このタイプの部分文字列の長さを出力として返す必要があります。 したがって、入力がs =efeffeのような場合、出力は4になります。 偶数の長さのパリンドロームサブシーケンスが1つしかないため、出力は4です。文字列は長さ4の「effe」です。 これを解決するには、次の手順に従います- n:=sのサイズ dp:=1つのnx n 2d配列。ここで、各項目は(0、空白の文字列)の形式のペアです n-1から-1の範囲のiの場合、1ずつ減少し
-
PandasとMatplotlibを使用して複数の線グラフをプロットする
PandasとMatplotlibを使用して複数の線グラフをプロットするには、次の手順を実行できます- 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 Pandas DataFrameクラスを使用して、2Dの潜在的に異種の表形式データを作成します。ここで、列は x、y および方程式 。 x、方程式などの特定のインデックスで整理された再形成されたデータフレームを取得します 、および y 。 plot()を使用します 線をプロットする方法。 図を表示するには、 show()を使用します メソッド。 例 import pa
-
Matplotlibを使用して複素数(Argand Diagram)をプロットする方法は?
matplotlibを使用して複素数をプロットするには、複素数を含むデータセットを作成できます。 ステップ 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 ランダムな複素数を作成します。 subplots()を使用して、図とサブプロットのセットを作成します メソッド。 scatter()を使用して散布点をプロットします メソッド。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np from matplotlib import pyplot as plt plt.rcParams["fi