-
Pythonの行にあるポイントの数を数えるプログラム
座標のリストがあるとします。各座標には、デカルト平面上の点を表す2つの値xとyがあります。次に、ある線上にあるポイントの最大数を見つけます。 したがって、入力が座標のようなものである場合=[[6、2]、[8、3]、[10、4]、[1、1]、[2、2]、[6、6]、[7、7 ]]の場合、ポイントは[1、1]、[2、2]、[6、6]、[7、7]]であり、線上にあるため、出力は4になります。 これを解決するには、次の手順に従います- res:=0 0からポイントリストのサイズまでの範囲のiについては、実行してください (x1、y1):=points [i] 傾斜:=新
-
Pythonで特定のエッジを含む一意のパスの数をカウントするプログラム
(u、v)の形式のエッジのリストがあり、これらがツリーを表しているとします。エッジごとに、入力で指定されたのと同じ順序で、そのエッジを含む一意のパスの総数を見つける必要があります。 したがって、入力がエッジのような場合=[[0、1]、[0、2]、[1、3]、[1、4]] その場合、出力は[6、4、4、4]になります。 これを解決するには、次の手順に従います- adj:=指定されたエッジからの隣接リスト count:=空のマップ 関数dfs()を定義します。これにはx、親が必要です count [x]:=1 adj [x]のnbごとに、実行 n
-
Pythonで正規表現パターンが文字列と一致しているかどうかを確認するプログラム
文字列sと正規表現パターンがあるとします。指定されたパターンが指定された文字列と一致するかどうかを確認する必要があります。正規表現には、いくつかのルールがあります- 。 (ピリオド)任意の1文字に一致する *(アスタリスク)前の要素の0個以上に一致します。 したがって、入力がpattern =h.l * o s =helloのような場合、raと1つの文字があるため、出力はTrueになります これを解決するには、次の手順に従います- n:=sのサイズ m:=pのサイズ 関数dp()を定義します。これにはi、jが必要です jがmと同じ場合、 ret
-
PythonでS式を文字列として評価するプログラム
S式として文字列sがあるとします。そのS式を評価し、結果を整数として返す必要があります。 s式は、1つの数値、または(+(-3 2)(* 3 3))のような括弧で囲まれた再帰式のいずれかであることがわかっているため、(3 -2)+(3 * 3)=10。ここで有効な演算子は+、-、*、および/です。 したがって、入力がs =(-(+ 3 2)2)の場合、出力は((3 + 2)-2)=3のように3になります。 これを解決するには、次の手順に従います- スタック:=新しいスタック sの開き括弧と閉じ括弧を削除します a:=スペースを使用してsを分割し、パーティションのリストを作
-
Pythonで島間の最短橋の距離を見つけるプログラム
バイナリ行列があるとします。ここで、0は水を表し、1は土地を表します。島は、4つの方向に1を接続するグループです。島は0(水)またはエッジに囲まれています。 2つの島を結ぶ最短の橋の長さを見つける必要があります。 したがって、入力が次のような場合 0 0 1 1 0 1 1 0 0 その場合、出力は1になります。これにより、(1,0)ポイントが(1,2)ポイントに接続されます。 これを解決するには、次の手順に従います- 行:=行列の行数 col:=行列の列数 関数dfs()を定義します。これにはi、j、sが必要です
-
Pythonで最短のスーパーシーケンスの長さを見つけるプログラム
2つの文字列sとtがあるとします。サブシーケンスとしてsとtの両方を持つ最短の文字列の長さを見つける必要があります。 したがって、入力がs =pipe t =peopleのような場合、可能なスーパーシーケンスの1つは pieopleであるため、出力は7になります。 これを解決するには、次の手順に従います- m:=sのサイズ、n:=tのサイズ table:=サイズ(n + 1)x(m + 1)のテーブルで、0を入力します 0からmの範囲のiの場合、実行 0からnの範囲のjについては、次のようにします iが0と同じか、jが0と同じ場合、 table [i、j
-
Pythonで水に完全に囲まれているすべての島を削除するプログラム
1が土地を表し、0が水を表すバイナリ行列があるとします。また、島は1のグループであり、0(水)またはエッジで囲まれています。完全に水に囲まれているすべての島を見つけて、それらを0に変更する必要があります。私たちが知っているように、すべての隣人(斜めではなく水平と垂直)が0の場合(隣人のどれもエッジではない)、島は水に囲まれて完成します。 したがって、入力が次のような場合 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 その場合、出力は次のようになります
-
合計が少なくともPythonでターゲットとなる最小のサブリストのサイズを見つけるプログラム
numsと呼ばれる数値のリストと、targetと呼ばれる別の入力があるとすると、その合計値がtargetと同じかそれ以上になるように、最短のサブリストのサイズを見つける必要があります。そのようなサブリストがない場合は、-1を返します。 したがって、入力がnums =[2、11、-4、17、4] target =19の場合、[17、4]を選択して少なくとも19の合計を取得できるため、出力は2になります。 これを解決するには、次の手順に従います- ps:=1つの要素のみを含むリスト0 numsのnumごとに、実行します psの後に(ps + numの最後の要素)を挿入します
-
Pythonで安全な距離を維持できるkの最大値を見つけるプログラム
バイナリ行列があるとします。ここで、0は空のセルを意味し、1は人がいるセルを意味します。 2つのセル間の距離は、x座標の差とy座標の差の最大値です。これで、セルからマトリックス内の各人までの距離が空の正方形であり、マトリックスの各辺がすべてk以上である場合、マトリックスは係数kで安全であると見なされます。安全にできる係数kの最大値を見つける必要があります。 したがって、入力が次のような場合 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0
-
Pythonで同じ高さの隣接するツリーがない場合にツリーの高さを上げるための最小コストを見つけるプログラム
植物の高さを表す高さと呼ばれる数値のリストがあり、植物の高さを1つ増やすために必要な価格を表すコストと呼ばれる別の値のリストがあるとします。高さリストの各高さを隣接する高さと異なるものにするために、最小のコストを見つける必要があります。 したがって、入力が高さ=[3、2、2]コスト=[2、5、3]のようである場合、最後の高さを1増やすことができるため、出力は3になります。これは3です。 これを解決するには、次の手順に従います- 関数dp()を定義します。これにはidx、l_heightが必要です idxが高さのサイズと同じ-1の場合、 heights [idx]がl_he
-
Pythonでn(t)形式で表される文字列を展開するプログラム
文字列sがあるとすると、これはより長い文字列をエンコードしています。 sはn(t)の連結として表され、n(t)はt、n回の連結を表し、tは通常の文字列であるか、再帰的にエンコードされた別の文字列です。 sのデコードされたバージョンを見つける必要があります。 したがって、入力がs =3(pi)2(3(am))0(f)1(u)の場合、出力は pipipiamamamamamamuになります。 これを解決するには、次の手順に従います- i:=0 関数parse()を定義します。これには時間がかかります ans:=新しいリスト i
-
Pythonで最小AとAのサイズの積が最大になるサブリストのサイズを見つけるプログラム
numsと呼ばれる数値のリストと別の値posがあるとします。 (Aの最小値)*(Aのサイズ)が最大化されるようなインデックスposを含むnumsのサブリストAを見つけて、値を返す必要があります。 したがって、入力がnums =[-2、2、5、4] pos =3の場合、(5、4)=4であり、(5、4)=4であるため、最適なサブリストは[5、4]であるため、出力は8になります。サイズは2で、4 * 2=8です。 これを解決するには、次の手順に従います- ans:=A [pos]、m:=A [pos] i:=pos、j:=pos 0からA-1のサイズの範囲のiに対して、次の
-
Pythonで1つの要素のみを削除した後、最大値と最小値を含むサブリストの数を見つけるプログラム
numsという番号のリストがあり、リスト内の最大1つの要素を削除できるとします。結果のリストの最大値と最小値の両方を含むサブリストの最大数を見つける必要があります。 したがって、入力がnums =[3、2、6、2、4、10]のような場合、出力は8になります。10を削除すると、[3、2、6、2、4]が得られます。最大値と最小値の両方を含む8つのサブリストがあります- [2、6] [6、2] [2、6、2] [3、2、6] [6、2、4] [2、6、2、4] [3、2、6、2] [3、2、6、2、4]。 これを解決するには、次の
-
Pythonで数値リストのすべてのサブシーケンスの幅の合計を見つけるプログラム
numsと呼ばれる数のリストがあるとします。数列の最大数と最小数の差としての数列の幅。 numsのすべてのサブシーケンスの幅の合計を見つける必要があります。答えが非常に大きい場合は、結果を10 ^ 9+7で変更します。 したがって、入力がnums =[7、4、9]の場合、出力は15になります。これは、[7]、[4]、[9]、[7、4]、[のようなサブシーケンスがあるためです。 7、9]、[4、9]、[7、4、9]であるため、幅は0、0、0、3、2、5、5なので、15を取得します。 これを解決するには、次の手順に従います- m:=10 ^ 9 + 7 リスト番号を並べ替える
-
Pythonで最小の部分行列を見つけるプログラム
2D行列と別の値kがあるとします。私たちの目標は、すべてのkxkサブ行列の最小値を含む行列を返すことです。 したがって、入力が次のような場合 3 5 6 8 6 5 4 3 12 およびk=2、 その場合、出力は[[3、5]、[3、3]]になります。 入力から、左上の部分行列の最小値が3であることがわかります 3 5 8 6 右上の部分行列の最小値は5です 5 6 6 5 左下の部分行列の最小値は3です 8 6 4 3 右下の部分行列の最小値は3です 6 5 3 12 これを解決するには、次の手順に従います- 各r、
-
エッジがPythonの最小スパニングツリーの一部であるかどうかを確認するプログラム
無向グラフを表す「edges」という名前の2D行列があるとします。マトリックスedgesのすべての項目はエッジを表し、(u、v、w)の形式です。これは、ノードuとvが接続されており、エッジの重みがwであることを意味します。エッジ(a、b)を表す整数aとbもあります。エッジ(a、b)が最小全域木の一部であるかどうかを確認する必要があります。 注 −グラフを接続する必要があり、エッジ(a、b)がグラフに存在します。 したがって、入力がエッジのようなものである場合= [[0, 2, 100], [1, 2, 200], [1, 3, 100], [2, 3, 300]], a = 0 b = 2
-
Pythonの入力ワードに短絡があるかどうかを調べるプログラム
単語のリストがあるとします。与えられた単語が連鎖して円を形成できることを確認する必要があります。 Aの最後の文字だけがBの最初の文字と同一である場合、単語Aは連鎖円内の別の単語Bの前に配置できます。すべての単語を使用する必要があり、1回だけ使用できます(最初/最後の単語)考慮されません)。 したがって、入力がwords =[ant、 dog、 tamarind、 nausea、 gun]の場合、出力はTrueになります。 これを解決するには、次の手順に従います- グラフ:=新しいキーと値のペアのリスト 見た:=新しいセット inDegree:=新しいキーと値のペアのリスト
-
Pythonでツリー内の特別なノードを見つけるプログラム
n-aryツリーを表す「tree」と呼ばれる値の2Dリストと、「color」と呼ばれる別の値のリストがあるとします。ツリーは隣接リストとして表され、そのルートはtree[0]です。 i番目のノードの特性- tree[i]はその子であり親です。 color[i]はその色です。 ルートがNにあるサブツリー内のすべてのノードが一意の色を持っている場合、ノードNを「特別」と呼びます。このツリーがあるので、特別なノードの数を調べる必要があります。 So, if the input is like tree = [ [1,2], [0
-
Pythonでグリッド内の平方数を調べるプログラム
2つの値pとqがあるとすると、ポイントが均等に配置されたp行とq列のグリッドから生成できる一意の正方形の数を見つける必要があります。答えが非常に大きい場合は、結果mod 10 ^ 9 + 7を返します。この問題では、正方形は、正方形の4つの頂点を形成する4つの点のセットです。正方形の辺は同じ長さである必要があり、必ずしもグリッドの軸に揃える必要はありません。 したがって、入力がp =4、q =4の場合、出力は20になります。 これを解決するには、次の手順に従います- rからcの最小範囲にあるiの場合、実行します。 ans:=ans +(r --i)*(c --i)* i
-
Pythonで同じサイズの文字列を見つけるプログラム
小文字と別の整数「j」で構成される文字列「i」があるとします。 iのサイズに等しく、辞書式にiに等しく、jより大きい連続した等しい文字がない文字列がいくつあるかを調べる必要があります。 答えは、Modの結果を10 ^ 9+7で見つけることによって計算する必要があります。 したがって、入力がi =app、j =2の場合、出力は405になります。 これを解決するには、次の手順に従います- j <=0の場合、 0を返す m:=10 ^ 9 + 7 n:=iのサイズ nums:=sに存在する各文字の(文字のUnicode表現-「a」のUnicode表現)を含む