-
Pythonでの連続した数字の最大の製品
=k桁であることが保証されていることに注意する必要があります。 したがって、入力がnum=52689762およびk=4の場合、出力は3024になり、4つの連続する桁の最大積は(8 * 9 * 7 * 6)=3024になります。 これを解決するには、次の手順に従います- 最大:=0 cand:=1 0、do 桁:=(数字の最後の桁)^ k cand:=1 0の場合、実行 cand:=cand *(digits mod 10) candが0と同じ場合、 ループから抜け出す 桁数:=桁数/ 10 最大:=最大および率直な最大値 num:=nums/10の商
-
Pythonのラテン方格
ラテン方格は、特別なパターンを持つ行列です。パターンを調べるためにさまざまな例を見てみましょう。 1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1 上記の例でわかるように、取得するラテン方格のサイズは異なります。ただし、上記の行列のパターンを注意深く観察すると、前の行の最後の番号が次の行の最初の要素として表示されることがわかります。 それがラテン方格に隠されたパターンです。入力nに対して上記の行列を生成するプログラムを作成する必要があります。 アルゴリズム nを任意の数で初期化します。 値n+1で数値を初期化し、f
-
Pythonでのリンクリストの長さ
単一リンクリストがあるとすると、その長さを見つける必要があります。リンクリストには、nextとvalのフィールドがあります。 3]の場合、出力は7になります。 これを解決するには、次の手順に従います- count:=0 ノードがnullでない場合は、 count:=count + 1 node:=ノードの次 返品数 理解を深めるために、次の実装を見てみましょう- 例 class ListNode: def __init__(self, data, next = None): self.val = dat
-
独自のボットネットを構築する
BYOBは、セキュリティ研究者と開発者が基本的なボットネットを構築および運用して、毎年何百万ものデバイスに感染し、最新のボットネットを生成する高度なマルウェアの理解を深め、これらの脅威に対する対策を開発する能力を向上させるためのフレームワークを提供します。これは、開発者がRATまたはコマンド&コントロールサーバーを最初から作成することなく、独自のコードを簡単に実装し、クールな新機能を追加できるように設計されています。 機能 ディスクに何も書き込まれていません −クライアントはディスクに何も書き込みません-リモートインポートでは任意のコードを動的にメモリにロードし、現在実行中のプロセスに直
-
QRGenを使用した悪意のあるQRコード
QRコードは、自動的にスキャンする必要があるものすべてに使用される機械可読データ形式です。製品のパッケージングから航空会社の搭乗券など、あらゆる場所でカスタムQRコードにパックされたエクスプロイトを使用して、一般的な脆弱性を悪用することができます。ハッカーは、脆弱なデバイスを標的とする悪意のあるQRコードを作成するツールQRGenを使用しました。人間はQRコードに含まれる情報をスキャンせずに読み取ったり理解したりすることができないため、QRコード攻撃は強力であり、コードの解読を試みるために使用されるデバイスが、QRコードに含まれるエクスプロイトにさらされる可能性があります。人間は実際にスキャン
-
Pythonで数値のすべての回転が素数であるかどうかをチェックするプログラム
数nがあるとすると、nのすべての回転が素数であるかどうかを確認する必要があります。 したがって、入力がn =13の場合、出力はTrueになります。これは、13が素数であり、31も素数であるためです。 これを解決するには、次の手順に従います- n:=n as string n回のサイズのループを実行し、 nが素数でない場合、 Falseを返す n:=n[インデックス1から最後まで]nの最初の文字を連結します Trueを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, n)
-
Pythonの単語のリストにいくつの異なるローテーショングループがあるかを見つけるためのプログラム
すべての固有の回転を保持する文字列の回転グループがあるとします。入力が「567」の場合、これは「675」と「756」に回転でき、それらはすべて同じ回転グループにあります。文字列の単語のリストがある場合は、各単語をローテーショングループでグループ化し、グループの総数を見つける必要があります。 したがって、入力がwords =[xyz、 ab、 ba、 c、 yzx]の場合、3つの回転グループがあるため出力は3になります-[xyz、 yzx]、[ab、 ba]、[c]。 これを解決するには、次の手順に従います- s:=新しいセット ct:=0 単語のiごとに、 私がsにいない場合は、
-
Pythonでランレングス形式の文字列を通常の形式にデコードするプログラム
文字列sがあるとします。 sはランレングスでエンコードされた文字列であり、デコードされたバージョンを見つける必要があります。ご存知のように、ランレングスエンコーディングは、文字列をエンコードするための高速でシンプルな方法です。アイデアは次のとおりです-単一のカウントと文字として繰り返される連続する要素(文字)。たとえば、文字列が「BBBBAAADDCBB」のような場合、「4B3A2D1C2B」としてエンコードされます。 したがって、入力がs =4B3A2D1C2Bの場合、出力は BBBBAAADDCBBになります。 これを解決するには、次の手順に従います- 出力:=空白の文字列 num
-
通常の形式の文字列をPythonのランレングス形式にエンコードするプログラム
文字列sがあるとします。ランレングスエンコーディング技術を使用してこれをエンコードする必要があります。ご存知のように、ランレングスエンコーディングは、文字列をエンコードするための高速でシンプルな方法です。アイデアは次のとおりです-単一のカウントと文字として繰り返される連続する要素(文字)。 したがって、入力がs =BBBBAAADDCBBの場合、出力は 4B3A2D1C2Bになります。 これを解決するには、次の手順に従います- res:=空白の文字列 tmp:=sの最初の文字 count:=1 1からsのサイズの範囲のiについては、 s [i]がtmpと同じでない場合、 r
-
Pythonで隣接するさまざまなビットを削除した後、最短の文字列を見つけるプログラム
バイナリ文字列sがあるとすると、隣接する2つの文字が異なる場合は、それらを削除できます。最後に、この操作を必要な回数だけ実行できる場合に取得できる最小の文字列の長さを見つける必要があります。 したがって、入力がs =1100011の場合、出力は1になります。「10」を削除すると「10011」になり、「10」をもう一度削除すると「011」になり、「01」を削除します。 、1を残します。 これを解決するには、次の手順に従います- スタック:=新しいリスト sの各cについて、 スタックが空であるか、スタックの最上位がcと同じである場合、 cをスタックにプッシュします それ以外の場合、スタ
-
最短のサブリストを見つけるようにプログラムして、リスト全体を並べ替えた後、Pythonで並べ替えます
numsと呼ばれる数値のリストがあるとすると、numで最も短いサブリストの長さを見つける必要があります。サブリストが並べ替えられている場合、配列nums全体が昇順で並べ替えられます。 したがって、入力がnums =[1,2,5,4,9,10]のような場合、サブリスト[4、3]を並べ替えると[0、1、3、4]になるため、出力は2になります。 、8、9] これを解決するには、次の手順に従います- f:=-1、l:=-1 lst:=リスト番号を並べ替える 0からnumsのサイズの範囲のiの場合は、 nums[i]がlst[i]と同じでない場合、 fが-1と同じ場合、 f:=i
-
Pythonで最も近い連絡先から少なくともkの距離に立つことができるかどうかを確認するプログラム
文字列sと数値kがあるとします。これで、文字列内の各文字はドット(。)またはxになります。ここで、ドットは空のスペースを示し、xは人を示します。私たちと私たちに最も近い人との間の距離が少なくともkになるように立つ位置を選択できるかどうかを確認する必要があります。 (ここでは、隣接する各インデックス間の距離は1です。) したがって、入力がs =x ... x ..、k =2の場合、s[2]またはs[6]に立つことができるため、出力はTrueになります。 これを解決するには、次の手順に従います- pos:=s内のxの位置、存在しない場合、posは-1になります =kと同じ場合、 Trueを
-
要素数をカウントするプログラムがPythonの正しい位置に配置されている
numsという数字のリストがあるとすると、リストを並べ替えるときに、正しいインデックスに存在する要素の数を見つける必要があります。 したがって、入力が[2、8、4、5、11]の場合、要素2と11は正しい位置にあるため、出力は2になります。ソートされたシーケンスは[2、4、5、8、11]になります これを解決するには、次の手順に従います- s:=リスト番号を並べ替える count:=0 0からnumsのサイズの範囲のiの場合は、 s[i]がnums[i]と同じ場合、 count:=count + 1 返品数 理解を深めるために、次の実装を見てみましょう- 例 cl
-
Pythonでさまざまなメールボックスから重要なメールを並べ替えるプログラム
メールボックスのリストがあるとします。ここで、各メールボックスに文字列のリストが示されています。ここで、各文字列は、ジャンクの場合は「J」、個人の場合は「P」、仕事の場合は「W」のいずれかです。各メールボックスを最初のメールボックスからラウンドロビン順に調べ、Jを除外して、単一のリストを作成し、リストを返します。 P。 これを解決するには、次の手順に従います- n_mailboxes:=メールボックスのサイズ 結果:=新しいリスト counts:=サイズn_mailboxesのリスト、次に0を入力 more:=True moreはゼロ以外ですが、 more:=False 0
-
リスト要素を左または右からスクイーズしてPythonで単一要素にするプログラム
numsと呼ばれる数値のリストがあるとすると、残りの要素が1つになるまで、左と右の両方からそれを絞る必要があります。各ステップで状態を返します。 したがって、入力がnums =[10,20,30,40,50,60]の場合、出力はになります。 [ [10, 20, 30, 40, 50, 60], [30, 30, 40, 110], [60, 150], [210] ] これを解決するには、次の手順に従います- ret:=1つの要素番号のみを含むリスト numsのサイズが1より大きい場合は numsのサイズ
-
Pythonでリストが厳密に増加しているか減少しているかを確認するプログラム
番号のリストがあるとします。リストが厳密に増加しているか、厳密に減少しているかを確認する必要があります。 したがって、入力がnums =[10、12、23、34、55]のような場合、すべての要素が異なり、各要素が前の要素よりも大きいため、出力はTrueになります。したがって、これは厳密に増加しています。 これを解決するには、次の手順に従います- numsのサイズが<=2の場合、 Trueを返す numのすべての要素が明確でない場合は、 Falseを返す ordered:=リスト番号を並べ替える numsが順序付けされたものと同じである場合、またはnumsが逆の方法で順序付け
-
Pythonで文字列として表される2つの数値を追加するプログラム
2つの文字列SとTがあり、これら2つが整数を表しているとすると、それらを追加して、同じ文字列表現で結果を見つける必要があります。 したがって、入力が「256478921657」、「5871257468」の場合、出力は「262350179125」になり、256478921657 + 5871257468 =262350179125 これを解決するには、次の手順に従います- SとTを文字列から整数に変換する ret =S + T retを文字列として返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve
-
Pythonで文字を時計回りにシフトすることで、ある文字列をチェックするプログラムを別の文字列に変換できます
2つの文字列pとqがあり、数値rもあるとすると、最大r回時計回りにいくつかの文字をシフトしてpをqに変換できるかどうかを確認する必要があります。したがって、例として、「c」は2つの時計回りのシフトを使用して「e」に変換できます。 したがって、入力がp =abc、q =ccc、r =3の場合、2つの時計回りのシフトを使用して「a」を「c」に変換してから「時計回りに1シフト、合計3シフトでbをcに変換します。 これを解決するには、次の手順に従います- aのサイズがbのサイズと同じでない場合は、 Falseを返す kが0と同じで、aがbと同じでない場合、 Falseを返す su:
-
Pythonで1つの値がBSTに存在するかどうかを確認するプログラム
二分探索木とvalという別の入力があるとすると、valがツリーに存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 val =7の場合、ツリーに7が存在するため、出力はTrueになります。 これを解決するために、次の手順に従います- 関数solve()を定義します。これはルートになります、val ルートがnullの場合、 Falseを返す ルートのデータがvalと同じ場合、 Trueを返す ルートのデータが
-
Pythonで1つの文字列を別の文字列に1対1でマッピングできるかどうかを確認するプログラム
2つの小文字の文字列sがあり、sをtにマッピングできるように、sの各文字から別の文字(同じ文字の場合もある)への1対1のマッピングを作成できるかどうかを確認する必要があるとします。 (文字の順序は変更されません。) i これを解決するには、次の手順に従います- s_dict:=新しいマップ t_dict:=新しい地図 0からsサイズとtサイズの最小値までの範囲のiについては、 s [i]がs_dictに存在する場合、 s_dict [s[i]]がt[i]と同じでない場合、 Falseを返す それ以外の場合、t [i]がt_dictに存在する場合、 t_dict [t