-
キューブを積み上げることができるかどうかをチェックするPythonプログラム
n個の異なる立方体のサイズを含む配列numがあるとすると、それらは水平に配置されます。立方体の山を垂直に作らなければなりません。新しいキューブは次のようになります- i番目の立方体がj番目の立方体の上にある場合、j番目の立方体の辺の長さはi番目の立方体の辺の長さ以上である必要があります。 縦パイルを作るときは、左側または右側からしか立方体をとることができず、中央からはとることができません。積み上げることができるかどうかを確認する必要があります。 したがって、入力がnums =[1,2,3,7,8]のような場合、ボックスを右から左に移動して正常に積み上げることができるため、出力はTru
-
Pythonでn番目のフィボナッチ用語を見つけるプログラム
数nがあるとします。再帰関数を定義して、n番目のフィボナッチ項を見つける必要があります。 したがって、入力がn =8の場合、最初のいくつかのフィボナッチ項は0、1、1、2、3、5、8、13、21、34 ... であるため、出力は13になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これにはnがかかります n <=2の場合、 return n-1 それ以外の場合、 returnsolve(n-1)+solve(n-2) 例 理解を深めるために、次の実装を見てみましょう- def solve(n): if n
-
n行の回文三角形を印刷するPythonプログラム
数nがあるとします。 n行の三角形を見つける必要があり、各行には回文が含まれています。 したがって、入力がn =5の場合、出力はになります。 1 121 12321 1234321 123454321 これを解決するには、次の手順に従います- 1からnの範囲のiについては、 display(((10 ^ i)-1)/ 9の整数部分)^ 2 次の行に移動 例 理解を深めるために、次の実装を見てみましょう- def solve(n): for i in range(1,n+1): print((((10**i) - 1)//9)**2) n = 8 solv
-
Pythonでパスカルの三角形を生成するプログラム
数nがあるとします。パスカルの三角形を最大n行まで生成する必要があります。パスカルの三角形は次のようになります- パスカルの三角形のプロパティは、前の行の隣接する2つの数値の合計であり、2番目の行のすぐ下に配置されている数値の値です。たとえば、行6の最初の10は行5の4と6の合計であり、2番目の10は行5の2つの数値6と4の合計です。 したがって、入力がn =5の場合、出力はになります。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 これを解決するには、次の手順に従います- 0からn+1の範囲のiについては、 0からn-iの範囲のjに
-
いくつかの文字とkサイズの組み合わせで文字「a」を取得する確率を見つけるPythonプログラム
n個の異なる英字の配列があるとします。別の値kもあります。一様分布のk個の異なるインデックス(1インデックス)を選択できます。選択したk個のインデックスの少なくとも1つに文字「a」が含まれる確率を見つける必要があります。 したがって、入力が文字=[a、c、a、b、l、a、b、z] k =2の場合、出力は64.28%になります。 (1、2)、(1、3)のような組み合わせが28の組み合わせがあるようにありますが、それらのいくつかは(1,2)、(1,3)、(6,7)のように18のペアが7を保持しているので18/28=0.6428。 これを解決するには、次の手順に従います- contains:
-
三角数を出力するPythonプログラム
数nがあるとします。 n行の三角形を印刷する必要があり、各行は行番号i、iを何度も保持します。 したがって、入力がn =5の場合、出力はになります。 1 22 333 4444 55555 これを解決するには、次の手順に従います- 1からnの範囲のiについては、 表示((10 ^ i)/ 9 * iの整数部分) 次の行に移動 例 理解を深めるために、次の実装を見てみましょう- def solve(n): for i in range(1,n+1): print((10**i)//9*i) n = 8 solve(n) 入力 8 出力 1 22 333 44
-
複素数オブジェクトのクラスを定義するPythonプログラム
次の演算で複素数クラスを定義することにより、複素数タスクを実行するとします- add()を使用して2つの複素数を追加します sub()で2つの複素数を減算します mul()を使用して2つの複素数を乗算します div()を使用して2つの複素数を除算します 複素数の絶対値を取得するmod() 複素数は(a + bi)の形式で表示されます。 2つの複素数があり、それらに対してこれらの操作を実行します。クラス内で、add()、sub()、mul()、およびdiv()メソッドをオーバーロードして、演算子を使用して操作を実行できるようにします。また、__ str __()メソッドをオーバーロ
-
Pythonで2つの文字列を交互にマージするプログラム
同じサイズの2つの文字列sとtがあるとします。 sとtからの文字を別の方法で結合する必要があります。したがって、s[i]をt[i]と連結してから、次の文字に進みます。 したがって、入力がs =hello t =worldの場合、出力は hweolrllodになります。 これを解決するには、次の手順に従います- zip形式:=sとtでzip操作を実行して、(s [i]、t [i])のようなペアを作成します zipped:=各要素がs[i]連結されたリストを作成しますt[i] zipリストを1つの文字列に結合して、zipリストを返します。 例 理解を深めるために、次の実装を見てみま
-
Pythonで文字列文字をペアごとに交換するプログラム
文字列sがあるとします。すべての奇数位置の要素を偶数位置の要素と交換する必要があります。したがって、最後に、要素がペアごとに交換されるsの順列を取得します。 したがって、入力がs =programmingのような場合、出力は rpgoarmmnigになります。 これを解決するには、次の手順に従います- s:=sの文字からリストを作成する 範囲0からs-1のサイズのiの場合、2ずつ増やします。 s [i]、s [i+1]をs[i+ 1]、s [i]と交換します sの文字を結合して文字列全体を作成し、返す 例 理解を深めるために、次の実装を見てみましょう- def solve(
-
Pythonで文字列圧縮を実行するプログラム
文字列sがあるとします。この文字列をランレングスエンコーディング形式に圧縮する必要があります。したがって、文字が「bbbb」のようにk回連続して繰り返される場合、文字「b」は4回連続して繰り返されるため、エンコードされた形式は「b4」になります。単一の文字の場合、カウントを追加しません。 したがって、入力がs =abbbaaaaaaccdaaabの場合、出力はab3a6c2da3bになります。 これを解決するには、次の手順に従います- res:=空白の文字列 cnt:=1 範囲1からs-1のサイズのiの場合、実行 s[i-1]がs[i]と同じ場合、 cnt:=cnt + 1
-
Pythonで2つの文字列からプレフィックス圧縮を実行するプログラム
2つの文字列sとtがあるとします(どちらにも小文字の英字が含まれています)。サイズ3のペアのリストを見つける必要があります。ここで、各ペアはこの形式(l、k)です。ここで、kは文字列、lはその長さです。これらの3つのペアのうち、最初のペアには、これら2つの文字列の最長の共通プレフィックスpであるsとtのサブ文字列が含まれ、次にsの残りの部分はsであり、tの残りの部分はtです。したがって、最終的なリストは[(pの長さ、p)、(s、sの長さ)、(t、tの長さ)]のようになります。 したがって、入力がs =science t =schoolの場合、出力は[(2、sc)、(5、ience)、(4、h
-
Pythonで以前に発生した文字列文字を削除するプログラム
文字列sがあるとします。以前に発生した文字を削除し、縮小された文字列を返す必要があります。これを解決するために、1つの順序付けられた辞書を使用して、文字の挿入順序を維持します。値はそれらの文字の頻度になりますが、頻度の値はここでは重要ではありません。辞書を作成したら、キーを取得して結合するだけで文字列を取得できます。 したがって、入力がs =cabbbaadacのような場合、出力はcabdになります。 これを解決するには、次の手順に従います- d:=キーが挿入順で順番に保存される辞書 sの各文字cについて、 cがdに存在しない場合、 d [c]:=0 d [c]:=d [
-
指定された属性インデックスに基づいてテーブルを並べ替えるPythonプログラム
アスリートに関する情報を含む2Dリストがあるとします。この情報は、ランク、年齢、身長です。各行には、さまざまなアスリートの情報が含まれています。また、別の数kがあります。 k番目の属性に基づいてデータを並べ替える必要があります。 したがって、入力が次のような場合 ランク 年齢 高さ 1 25 190 2 35 180 3 33 185 4 26 175 5 35 180 そしてk=1。 その場合、出力は次のようになります ランク 年齢 高さ 1 25 190 4
-
文字列をカスタム順序で並べ替えるPythonプログラム
1つの英数字の文字列があるとします。次の条件に基づいて並べ替える必要があります ソートされたすべての小文字は大文字の前に配置されます。 ソートされた大文字はすべて数字の前に配置されます。 ソートされたすべての奇数桁は、ソートされた偶数桁の前に配置されます。 したがって、入力がs =HeLlo1234のような場合、出力はeloHL1324になります。 これを解決するには、次の手順に従います- 関数f()を定義します。これにはcがかかります コード:=0 cが大文字の場合、 コード:=10 ^ 3 それ以外の場合、cが数字の場合、 コード:=10 ^ 6
-
Pythonで一意の数のn乗の合計である数を取得できる方法の数を見つけるためのプログラム
数xと別の数nがあるとします。いくつかの一意の数のn乗の合計としてxを取得できる方法をいくつか見つける必要があります。 したがって、入力がx =100 n =2の場合、可能な解は6 ^ 2 + 8 ^ 2、10 ^ 2、および1 ^ 2 + 3 ^ 2 + 4 ^ 2 + 5 ^であるため、出力は3になります。 2 + 7^2。 これを解決するには、次の手順に従います- ans:=0 solve()と呼ばれるメソッドを定義します。これは4つのパラメーターx、n、cn、cs、初期値を取ります cs =0、cn=1の値 p:=cn ^ n p + cs
-
メールアドレスを検証するPythonプログラム
文字列としてメールアドレスがあるとします。以下の条件に基づいて、これが有効かどうかを確認する必要があります- 形式は[email protected]形式である必要があります ユーザー名には、大文字と小文字、数字、ダッシュ、アンダースコアのみを含めることができます 会社名には大文字と小文字と数字のみを含めることができます ドメインには大文字と小文字のみを含めることができます 延長の最大長は3です。 正規表現を使用してメールアドレスを検証できます。 reライブラリをインポートすることで正規表現を使用できます。パターンを一致させるには、reライブラリ
-
Pythonで少なくともk回発生したリストから要素を検索するプログラム
numsと呼ばれる要素のリストと値kがあるとします。少なくともk回発生した要素を見つける必要があります。 したがって、入力がnums =[2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1] k =3のような場合、出力は[2、5、6、3] これを解決するには、次の手順に従います- c:=numsで存在する各要素の頻度を含むリスト res:=新しいリスト cのキーnごとに、を実行します。 =kの場合、 resの最後にnを挿入 return res 例 理解を深めるために、次の実装を見てみましょう- from collections import Cou
-
reduce関数を使用して有理数の積を見つけるPythonプログラム
有理数のリストがあるとします。削減機能を使用して製品を見つける必要があります。 reduce()関数は、左から右へのオブジェクトのリストに累積的に2つの引数を持つ関数を適用します。 したがって、入力が分数=[(5,3)、(2,8)、(6,9)、(5,12)、(7,2)]のような場合、出力は(175、432)になります。 )5/3 * 2/8 * 6/9 * 5/12 * 7/2 =(5 * 2 * 6 * 5 * 7)/(3 * 8 * 9 * 12 * 2)=2100/5184 =175/432。 これを解決するには、次の手順に従います- fracs:=新しいリスト fracの各f
-
多数の階乗を見つけるPythonプログラム
nの数が多いとします。その階乗を見つける必要があります。他のいくつかの言語では、整数データ型の範囲を超える可能性があるため、多数の階乗を見つけるのは非常に困難です。ただし、Pythonでは、長さを自動的に検出し、デフォルトで数値をより大きな整数形式に更新します。 したがって、入力がn =50の場合、出力はになります。 30414093201713378043612608166064768844377641568960512000000000000 これを解決するには、次の手順に従います- 数学ライブラリから階乗クラスをインポートする 任意の大きな値のnの階乗を計算する
-
Pythonでn番目の項までのフィボナッチ数列の結果を見つけるプログラム
数nがあるとします。最初のn個のフィボナッチ項の合計を見つける必要があります(最大n個の項のフィボナッチシーケンス)。答えが大きすぎる場合は、10 ^ 8+7を法とする結果を返します。 したがって、入力がn =8の場合、最初のいくつかのフィボナッチ項は0 + 1 + 1 +2 + 3 + 5 + 8 + 13 =33 であるため、出力は33になります。 これを解決するには、次の手順に従います- m:=10 ^ 8 + 7 メモ:=新しい地図 関数solve()を定義します。これにはn、mがかかります nがメモにある場合、 メモを返す[n] memo [n]:=n <2の場合は