-
Pythonで二分木の最大幅を見つけるプログラム
二分木があるとすると、ツリー内の任意のレベルの最大幅を見つける必要があります。ここで、レベルの幅は、左端のノードと右端のノードの間に保持できるノードの数です。 したがって、入力がのような場合 その場合、出力は2になります これを解決するために、次の手順に従います- マップdを作成し、最小値と最大値を保持するには、最小値は最初は無限大で、最大値は0です 関数dfs()を定義します。これはルートを取ります、pos:=0、depth:=0 ルートがnullの場合、戻り値はありません d [depth、0] =d [depth、0]とposの最小値 d [d
-
Pythonで指定された文字列シーケンスルールに従った後、n番目のシーケンスを見つけるプログラム
2つの文字列s、tがあり、別の正の数nも与えられているとすると、シーケンスAのn番目の項を返す必要があります。ここで- A [0] =s A [1] =t A [n] =A [n-1] + A [n-2] nが偶数の場合、それ以外の場合はA [n] =A [n-2] +A[n-1]。 例として、s=aおよびt=bの場合、シーケンスAは-[a、 b、 ba( a + b)、 bba( b + ba)、 bbaba( bba + ba)] したがって、入力がs =pk、t =r、n =4の場合、出力は rrpkrpkになります。 これを解決するには、次の手順に従います-
-
Pythonで1つの文字列を他の文字列のサブ文字列にするために必要な最小数の操作を見つけるプログラム
2つの文字列sとtがあるとすると、sがtをsの部分文字列にするために必要な操作の最小量を見つける必要があります。これで、各操作で、s内の任意の位置を選択し、その位置の文字を他の任意の文字に変更できます。 したがって、入力がs =abbpqr、t =bbxyの場合、サブストリング bbpqを取得して、pをxに、qをに変更できるため、出力は2になります。 y。 これを解決するには、次の手順に従います- k:=tのサイズ、n:=sのサイズ ans:=10 ^ 10 0からn-kの範囲のiの場合、do ss:=s[インデックスiからi+k-1へ]の部分文字列 ans:=最小のans
-
Pythonで指定された数値のすべての桁の合計を見つけるプログラム
数値がnumであるとすると、その桁の合計を見つける必要があります。文字列を使用せずに解決する必要があります。 したがって、入力がnum =512の場合、出力は8 =5 + 1+2になります。 8 =5 + 1 + 2であるため、tputは8になります。これを解決するには、次の手順に従います- sum:=0 numは0と同じではありませんが、 sum:=sum +(num mod 10) num:=num/10の商 合計を返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, nu
-
Pythonで合計kになるリスト内の任意の2つの数値を検索するプログラム
numsと呼ばれる数のリストがあり、別の数kがあるとすると、リストに存在する2つの数の合計がkになるかどうかを確認する必要があります。同じ要素を2回使用しないでください。また、数値は負または0にすることができます。 したがって、入力がnums =[45、18、9、13、12]、k =31のような場合、出力はTrueになります(18 + 13 =31 )。 これを解決するには、次の手順に従います- temp_set:=新しいセット numsの各numに対して、実行します numがtemp_setにある場合、 Trueを返す temp_setに(k-num)を追加します Fa
-
文字列をチェックするプログラムがPythonで回文であるかどうか
文字列sがあるとします。回文かどうかを確認する必要があります。私たちが知っているように、回文とは、単語が前後で同じである場合です。 したがって、入力がs =racecarのような場合、出力はTrueになります これを解決するには、次の手順に従います- t:=sの逆 tがsと同じ場合、 Trueを返す それ以外の場合、 Falseを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, s): t=s[::-1] if t==s:  
-
Pythonで1つの数を別の数にするために必要な操作の最小数を見つけるためのプログラム
数値の開始と別の数値の終了(start
-
タスクの数を見つけるプログラムは、Pythonで指定された条件で終了できます
タスクのリストと別の人のリストがあるとします。タスク[i]は、i番目のタスクを実行するために必要な強度の量を決定します。そして人々[i]はi番目の人が持っている強さの量を決定します。最後に、1人が最大で1つのタスクを実行できる場合に完了できるタスクの数を見つける必要があります。 したがって、入力がtasks =[4、3、9、15]、people =[10、5、3、2]の場合、最初の人がタスク9を実行できるため、出力は3になります。タスク4を実行し、3人目はタスク3を実行でき、4人目はタスクを実行できません。 これを解決するには、次の手順に従います- リストタスクを並べ替え、リストの人を並
-
Pythonで入力とバックスペースを実行して、エディターで最終的なテキストを検索するプログラム
エディターに入力された文字を表す文字列sがあり、記号「<-」はバックスペースを示しているとすると、エディターの現在の状態を見つける必要があります。 したがって、入力がs =ilovepython <-<-ONの場合、出力は ilovepythONになります。これは、 ilovepythonの後に2つのバックスペース文字があるため、最後の2文字を削除してから、もう一度ONと入力します。 。 これを解決するには、次の手順に従います- res:=新しいリスト sの各iについて、 iが-と同じで、resの最後の文字が <と同じ場合、 resから最後の要素を削除する resが空でない場合は、
-
すべてがPythonで一意である場合に、3つの要素の積を見つけるプログラム
x、y、zの3つの数値があるとすると、それらの積を見つける必要がありますが、2つの数値が等しい場合、それらはカウントされません。 したがって、入力がx =5、y =4、z =2の場合、3つの数値はすべて異なるため、出力は40になり、それらの積は5 * 4 * 2 =40 これを解決するには、次の手順に従います- temp_set:=新しいセット 削除:=新しいセット [x、y、z]の各iについて、 iがtemp_setにある場合、 removeというセットにiを挿入します セットtemp_setにiを挿入します 削除するiごとに、を実行します。 temp_setからiを削
-
与えられた行列がPythonでテプリッツ行列であるかどうかをチェックするプログラム
行列Mがあるとすると、それがテプリッツ行列であるかどうかを確認する必要があります。ご存知のように、左から右に下がるすべての対角線が同じ値を持つ場合、行列はテプリッツと呼ばれます。 したがって、入力が次のような場合 7 2 6 3 7 2 5 3 7 その場合、出力はTrueになります。 これを解決するには、次の手順に従います- 最後の行を除く各行iについて、実行します 最後の列を除く各列について、 matrix [i、j]がmatrix [i + 1、j + 1]と同じでない場合、 Falseを返す Trueを返す
-
Pythonで与えられた行列の転置を見つけるプログラム
(n x n)行列Mがあるとすると、その転置を見つける必要があります。私たちが知っているように、行列の転置は行と列のインデックスを切り替えます。より正式には、すべてのrとcについて、matrix [r] [c] =matrix[c][r]。 したがって、入力が次のような場合 7 2 6 3 7 2 5 3 7 その場合、出力は次のようになります 7 3 5 2 7 3 6 2 7 これを解決するには、次の手順に従います- M:=新しいリスト トラッカー:=0 トラッカー<
-
Pythonで星を使用して1つの三角形の階段を作成するプログラム
数がnであるとすると、n段の階段の文字列を見つける必要があります。ここでは、文字列の各行が改行区切り文字で区切られています。 したがって、入力がn =5の場合、出力はになります。 * ** *** **** ***** これを解決するには、次の手順に従います- s:=空白の文字列 0からn-1の範囲のiの場合、do s:=s連結(n-i-1)空白スペースの数連結(i + 1)星の数 i
-
数字をチェックするプログラムがPythonで醜い数字かどうか
数がnであるとすると、その素因数に2、3、または5しか含まれていないかどうかを確認する必要があります。 したがって、入力がn =18の場合、18の素因数は2と3であるため、出力はTrueになります。 これを解決するには、次の手順に従います- n <0の場合、 Falseを返す factor:=要素を含むリスト[2,3,5] ファクターの各iについて、 n mod iは0と同じですが、 n:=n / i nが1と同じ場合はtrueを返し、それ以外の場合はfalseを返します 理解を深めるために、次の実装を見てみましょう- 例 class Solution: &
-
作成できる文字列の数を見つけるプログラム。ここで、「a」は「a」または「b」であり、「b」はPythonでは「b」のままです。
「a」と「b」だけの文字列sがあるとします。 「a」は「a」のままにすることも「b」に変えることもできますが、「b」を変更することはできません。作成できる一意の文字列の数を見つける必要があります。 したがって、入力がs =baabのような場合、これらの文字列を作成できるため、出力は4になります-[baab、 babb、 bbab、 bbbb] これを解決するには、次の手順に従います- counts:=sの「a」の頻度 2^カウントを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, s
-
Pythonでソートされたリスト内の一意の整数の数を見つけるプログラム
numsと呼ばれるソートされた数値のリストがあり、リスト内の一意の要素の数を見つける必要があるとします。 したがって、入力がnums =[3、3、3、4、5、7、7]の場合、一意の番号は[3、4、5、7] であるため、出力は4になります。 これを解決するには、次の手順に従います- s:=新しいセット cnt:=0 numsの各iについて、 iがsにない場合は、 iをsに挿入 cnt:=cnt + 1 return cnt 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self
-
Pythonで解決されたUnixスタイルのパスを見つけるプログラム
文字列のリストにUnixパスがあるとすると、解決されたバージョンを見つける必要があります。 Unixで知っているように、「..」は前のディレクトリを示し、「。」は前のディレクトリを示します。現在のディレクトリにとどまることを示します。ここで解決すると、2つのシンボルが評価され、現在の最終的なディレクトリが取得されます。 したがって、入力がpath =[usr、 ..、 usr、 。、 local、 etc、 foo]の場合、出力は[usr、 local、etc、foo]、一部は「/usr/../usr/./local/etc」を表し、「/ usr / local / etc/foo」に解決さ
-
Pythonで垂直暗号を使用して文字列を暗号化するプログラム
文字列sと数値nがあるとすると、sをn行に再配置して、sを垂直方向(上から下、左から右)に選択できるようにする必要があります。 したがって、入力がs =ilovepythonprogramming n =5の場合、出力は[ipnrn、lypag、otrm、vhom、eogi]になります。 これを解決するには、次の手順に従います- L:=空のリスト 0からn-1の範囲のiの場合: iから始まるn番目の文字をそれぞれ取得して文字列を挿入し、Lに挿入します Lを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def
-
PythonでVigenere暗号を使用して文字列を暗号化するプログラム
小文字のアルファベット文字列テキストがあり、keyと呼ばれる別の文字列があるとします。 text[i]のすべての文字がオフセットキー[i]で右側に移動する新しい文字列を見つける必要があります。ここでは、アルファベットのkey [i]の位置で表されるオフセット(A =0、B =1など)。文字がオーバーフローすると、反対側に巻き付けられます。 したがって、入力がtext =code、key =teamの場合、出力は vsdqになります。 これを解決するには、次の手順に従います- cip:=新しいリスト start:=aのASCII テキストからのlとキーからのkごとに、 shift:=
-
最初にすべての母音を並べ替え、次に子音を並べ替えるプログラムは、Pythonでは並べ替えられた順序になっています
小文字のアルファベット文字列sがあるとすると、sのすべての母音がソートされた順序で続き、その後にsのすべての子音がソートされた順序で続く文字列を見つける必要があります。 したがって、入力が「helloworld」のような場合、母音は「eo」であり、子音は「dhlllrw」のソート順になっているため、出力は「eoodhlllrw」になります。 これを解決するには、次の手順に従います- k:=空白の文字列、t:=空白の文字列 sの各文字cについて、 cが母音の場合、 k:=k連結c それ以外の場合、 t:=t連結c return(並べ替え後にk、並べ替え後にtを連結)