-
Pythonで制限未満でXORが最大である要素のリストを見つけるプログラム
数値のリストnumsと、各クエリに[x、limit]が含まれるクエリのリストがあるとします。各クエリ[x、limit]について、e≤limitおよびeXORxが最大化されるようなnumsの要素eを見つけるようなリストを見つける必要があります。そのような要素がない場合は、-1を返します。 したがって、入力がnums =[3、5、9] querys =[[4、6]、[2、0]]の場合、最初のクエリと同様に、出力は[3、-1]になります。 numsで2または4を使用できます。 3 ^ 4 =7、5 ^ 4 =3なので、XORが大きくなる3を選択します。 2番目のクエリでは、0以下の数値はないため、
-
Pythonでターゲット間隔をマージして間隔を見つけるプログラム
重複しない間隔のリストがあるとします。これらは終了時間に基づいてソートされます。別の間隔ターゲットがあります。間隔が重複せず、並べ替えられるように、ターゲットをマージした後の最終間隔を見つけます。 したがって、入力がintervals =[[1、15]、[25、35]、[75、90]]、target =[10、30]のような場合、出力は[[1、35]、[ 75、90]]最初の2つの間隔[1、15]と[25、35]がマージされます。 これを解決するには、次の手順に従います- ivの最後にターゲットを挿入 開始時間に基づいてivを並べ替える res:=最初の間隔の新しいリスト
-
Pythonの文字の行列から生成できる単語の数を数えるプログラム
4 x 4の文字ボードと単語のリストがあるとすると、単語ごとに最大1つのセルを使用して、隣接する文字のシーケンスによってボード内で生成できる単語の最大数を見つける必要があります(ただし、言い換えれば、セルを再利用できます)。上、下、左、右、または斜めの方向に移動できます。 したがって、入力が次のような場合 m b f d x a y a t z t r s q q q words =[bat、 far、 mat]の場合、出力は3になります。これは、mat [0,1]→[1,1]→[2,0]、bat [0
-
Pythonで隣接する要素のインデックスの可能な最小の違いを見つけるためのプログラム
numsの数のリストがあるとすると、numsの間に数がない場合(nums [i]、nums [j])、2つの数nums[i]≤nums[j]が隣接していると言えます。可能な限り最小の|j--i|を見つける必要がありますnums[j]とnums[i]が隣接するようにします。 したがって、入力がnums =[1、-9、6、-6、2]の場合、出力は2になります。これは、2と6が隣接しており、互いに2つのインデックスが離れていることがわかります。 これを解決するには、次の手順に従います- インデックス:=新しいマップ Aの各インデックスiと値xについて、実行します インデックス
-
Pythonで回文にするために必要な最小スワップの数をカウントするプログラム
文字列sがあるとすると、回文にするために必要な隣接スワップの最小数を見つける必要があります。そのような解決方法がない場合は、-1を返します。 したがって、入力がs =xxyyの場合、出力は2になります。これは、中央のxとyを入れ替えて、文字列が xyxyになり、最初の2つのxとを入れ替えることができるためです。 y」で「yxxy」を取得します。これは回文です。 これを解決するには、次の手順に従います- 関数util()を定義します。これには時間がかかります 見た:=新しい地図 sの各iについて、実行します sawed [i]:=1 +(存在する場合はseen [i]
-
Pythonで指定された部分文字列を含む最小文字列サイズを見つけるプログラム
2つの文字列sとtがあるとすると、tのすべての文字を含むsの最小部分文字列のサイズを見つける必要があります。そのような部分文字列が存在しない場合は、-1を返します。 したがって、入力がs =thegrumpywizardmakes t =wakeの場合、 wakeを含む最短のサブストリングはwizardmake(長さ10)であるため、出力は10になります。 これを解決するには、次の手順に従います- カウンター:=bの各文字の頻度 start:=0 min_subs:=inf rem:=b内の個別の文字の数 0からaのサイズまでの範囲で終了する場合は、実行し
-
Pythonで削除された桁の最小桁の合計を見つけるプログラム
2つの文字列sとtの数字があるとすると、次のように文字列内の数字を削除する方法を見つける必要があります。1.2つの文字列が同じ2.削除される数字の合計が最小化最後に最小化された合計を返します。 したがって、入力がs =41272 t =172の場合、最初の文字列から「4」と「2」を削除して「172」を取得できるため、出力は6になります。 これを解決するには、次の手順に従います- 関数lcs()を定義します。これにはa、b、m、nが必要です table:=サイズ(n + 1)x(m + 1)の2d行列で、0を入力します 1からmの範囲のiの場合、実行します 1からn
-
Pythonで通りのすべての家を照らすための最小半径を見つけるプログラム
1次元の線上の家の位置を表すnumsと呼ばれる番号のリストがあるとします。ここで、ライン上のどこにでも配置できる3つの街路灯があり、位置xのライトが範囲[x --r、x+r]のすべての家を照らしているとします。すべての家を照らすのに必要な最小のrを見つける必要があります。 したがって、入力がnums =[4,5,6,7]のような場合、ランプを4.5、5.5、および6.5に配置して、r =0.5にすることができるため、出力は0.5になります。したがって、これらの3つのライトで4つの家すべてを照らすことができます。 これを解決するには、次の手順に従います- 関数valid()を定義します
-
Pythonでリストのすべてのアイテムを0にするために反転できる最小k長のサブリストをカウントするプログラム
0と1を格納したnumsと呼ばれる数値のリストがあるとします。別の値kがあります。 ここで、すべての1が0になり、すべての0が1になるように、長さkのサブリストを反転する操作があるとします。 numsをすべて1から0に変更するために必要な操作の最小数を見つける必要があります。変更できない場合は-1を返します。 したがって、入力がnums =[1,1,1,0,0,1,1,1]、k =3のような場合、最初の3つの数値をゼロに反転してから、出力は2になります。最後の3つの数字をゼロに反転します。 これを解決するには、次の手順に従います- n:=numsのサイズ res:=0、反転:
-
Pythonで交互の値を持つために必要なフリップの最小数を見つけるためのプログラム
バイナリ文字列sがあるとします。ここで、sの接頭辞を取り、それを後ろに移動できると仮定します。次に、同じ値の連続する文字がないように、反転する必要のある文字の最小数を見つけます。 したがって、入力がs =10010101111の場合、プレフィックス 10を取得できるため、出力は2になります。次に、文字列が 01010111110になるように後ろに移動し、3番目と5番目のビットを右から0に反転します。 (01010101010)。 これを解決するには、次の手順に従います- ans:=Sのサイズ N:=Sのサイズ s:=0 0から2*Nの範囲のiの場合、実行 s
-
Pythonで停止したときに動く動物の最終的な位置を取得するプログラム
一部の動物の初期状態を表す文字列sがあるとします。各動物は、次の3つの値のいずれかを取ることができます。Lは、動物が左に移動したことを示します。 Rは、動物が右に移動したことを示します。 @は、動物が静止していることを示します。ある方向に移動する動物は、反対方向から力を受けない限り、他の動物を拾います。その後、静止します。動物が動きを止めたときの各動物の向きを見つける必要があります。 したがって、入力がs =@@ L @ R @@@@ Lの場合、出力は LLL @ RRRLLLになります。 これを解決するには、次の手順に従います- レベル:=sと同じサイズのリストで、-1で埋めます
-
Pythonでアイテムをバッグに入れることで得られる最高価格を見つけるプログラム
番号のリストが2つあるとします。 1つは重みと呼ばれ、もう1つは値と呼ばれます。これらは同じ長さです。容量とカウントという2つの値もあります。ここで、weights[i]とvalues[i]は、i番目のアイテムの重みと値を表します。最大で最大容量重量、最大で合計数のアイテムを保持でき、各アイテムのコピーは1つしか取得できないため、取得できる最大の価値を見つける必要があります。 したがって、入力が重み=[2、2、4、6]値=[15、15、20、35]容量=8カウント=3のような場合、最初の3つの項目を選択できるため、出力は50になります。 、総重量が8であるため。 これを解決するには、次の手
-
Pythonで指定された文字列から最長の有効な括弧の長さを見つけるプログラム
文字列sがあるとします。これは、開き括弧と閉じ括弧のみで構成されます。有効な(整形式の)最も長い括弧の部分文字列の長さを見つける必要があります。したがって、入力が「))(())())」の場合、有効な文字列は「(())()」であるため、結果は6になります。 これを解決するには、次の手順に従います- スタックを作成し、-1を挿入し、ans:=0を設定します。 0からスタックの長さまでの範囲のiの場合– 1 s [i]が開き括弧の場合は、iをスタックに挿入します それ以外の場合 スタックが空でなく、スタックの最上位が-1でなく、s [stack top]が開き括弧で
-
PythonでN個のクイーンソリューションを取得できるかどうかを確認するプログラム
0が空のセルを表し、1がそのセルのチェスの女王を表すバイナリ行列があるとします。このボードを埋めて、有効なnqueenソリューションを取得できるかどうかを確認する必要があります。私たちが知っているように、nクイーンのパズルは、2つのチェスクイーンが互いに攻撃できないように、n×nのチェス盤にnのクイーンを配置するように求めます。 したがって、入力が次のような場合 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 そ
-
Pythonで少なくともk個の奇数値を持つ最長増加部分列の長さを見つけるプログラム
numsと呼ばれる数値のリストと別の値kがあるとすると、少なくともk個の奇数要素を持つ最長増加部分列のサイズを見つける必要があります。 したがって、入力がnums =[12、14、16、5、7、8] k =2のような場合、出力は3になります。これは、少なくとも2つの奇数値を持つ最長増加部分列が[5、7 8]。 これを解決するには、次の手順に従います- 最高:=0 関数dp()を定義します。これにはi、j、odd、takenが必要です =kの場合、 ベスト:=ベストの最大値と取得 jがnumsのサイズと同じである場合、 戻る nums [i]
-
Pythonで要素を再配置することにより、リストのパワーの最大値を取得するプログラム
N個の正の数のリスト番号があるとします。これで、リストから任意の1つの値を選択し、それを任意の位置に移動(スワップではなく)できます。また、位置に移動することもできません。それで、リストの可能な最大の最終的な力は何であるかを見つけなければなりませんか?私たちが知っているように、リストの力は、すべてのインデックスiに対する(index + 1)*value_at_indexの合計です。 $$ \ displaystyle \ sum \ Limits_ {i =0} ^ {n-1}(i + 1)\ times list [i] $$ したがって、入力がnums =[6、2、3]のような場合
-
Pythonでk個の異なる色でフェンスをペイントするための最小コストを見つけるためのプログラム
N個のフェンスの列をK個の異なる色でペイントするとします。隣接する2つのフェンスが同じ色にならないようにしながら、コストを最小限に抑えたいと考えています。したがって、n番目の行とk番目の列がk番目の色でn番目のフェンスをペイントするコストを表すN x Kマトリックスがある場合、この目標を達成するための最小コストを見つける必要があります。 したがって、入力が次のような場合 6 4 5 3 2 7 3 4 5 5 4 4 次のカラーインデックス(最初のフェンスから開始)を選択できるため、出力は14になります。-5→2→3→
-
Pythonで開始点から終了点までコストkのパスの数をカウントするプログラム
2次元のバイナリ行列と別の値kがあるとします。左上のセルから始めて、右下のセルに移動する必要があります。一歩で、私たちは下がるか、右に下がることしかできません。これで、パスのスコアは、パス上のセルの値の合計になります。スコアkで開始セルから終了セルまでのパスの数を見つける必要があります。考えられる方法が非常に多い場合は、結果mod 10 ^ 9+7を返します。 したがって、入力が次のような場合 0 0 1 1 0 1 0 1 0 K =2の場合、スコア2のパスは[R、R、D、D]、[D、R、R、D]、[D、D、R、R]、[D]であるた
-
Pythonで各文字が最大で1つの部分に表示されるリストの各パーティションのサイズを見つけるプログラム
小文字の文字列sがあるとすると、sをできるだけ多くの部分に分割して、各文字が最大で1つの部分に表示され、パーティションのサイズをリストとして見つけることができます。 したがって、入力がs =momoplaykaeの場合、文字列が[momo、 p、 l、 に分割されるため、出力は[4、1、1、4、1]になります。 ayka 、e]。 これを解決するには、次の手順に従います- count:=s内の文字とその出現を含むマップ out:=新しいリスト、stk:=空のスタック 長さ:=0 sの各文字について、実行します count [char]:=count [cha
-
Pythonの特定の2つの場所で金を受け取るための最小コストを見つけるためのプログラム
2d行列と、row、col、erow0、ecol0、erow1、ecol1などの他の値があるとします。現在の位置が行列[row、col]で、行列[erow0、ecol0]と行列[erow1、ecol1]にある金をピックアップしたい場合。上下左右に移動できますが、セル(r、c)にいるときは、コストマトリックス[r、c]を支払う必要があります。ただし、セルに2回以上着地した場合は、支払いません。そのセルの費用を再度支払う必要があります。両方の場所で金を受け取るための最小コストを見つける必要があります。 したがって、入力が次のような場合 1 1 1 1 1 1