Python

 Computer >> コンピューター >  >> プログラミング >> Python
  1. Pythonで2つの並べ替えられたリストをマージする

    2つの並べ替えられたリストAとBがあるとします。それらをマージして、1つの並べ替えられたリストCのみを形成する必要があります。リストのサイズは異なる場合があります。 たとえば、A=[1,2,4,7]およびB=[1,3,4,5,6,8]とすると、マージされたリストCは[1,1,2,3,4、 4,5,6,7,8] これは再帰を使用して解決します。したがって、関数は次のように機能します- 関数merge()のリストAとBを想定します Aが空の場合はBを返し、Bが空の場合はAを返します Aの値<=Bの値の場合、A.next =merge(A.next、B)そしてAを返します それ以外の場合

  2. Pythonで並べ替えられた配列から重複を削除する

    ソートされたリストAがあるとします。重複するすべてのエントリを削除した後、配列の長さを返す必要があります。これは、O(1)の余分なスペースで実行する必要があります。そのため、その場で操作を行う必要があります。 たとえば、A =[1、1、2、2、2、3、3、3、3、4、5、5、5、6]とすると、6つの異なる要素があるため、出力は6になります。 これを解決するには、次の手順に従います- リストが空の場合は、0を返します それ以外の場合は、最初にprev=Aの最初の要素を取得します。長さ=0を定義します for i:=1からn-1、do A [i]がprevと同じでない場合、 長さ:=

  3. PythonでstrStr()を実装する

    2つの文字列strとsub_strがあるとします。 strでsub_strの最初の出現を見つける必要があります。したがって、文字列strが「helloworld」で、サブ文字列が「lo」の場合、結果は3になります。 これは、Cのstrstr()関数を使用して実行できます。Cのstrstr()に類似した別の関数を設計する必要があります。 これを解決するには、次の手順に従います- i:=0、j:=0、m:=sub_strの長さおよびn:=strの長さ m =0の場合、0を返します i

  4. Pythonで数えて言う

    ここでは、カウントと発言のシーケンスが表示されます。これは、いくつかの用語が以下のようなシーケンスです- 1 11 21 1211 111221 文字列は次のように読み取られます 1(1) 11(One 1)前の1を読んで、「One1」と言います 21(Two 1)前の11を読んで、「Two1」と言ってください 1211(One 2 one 1)前の21を読んで、「One 2one1」と言います 111221(One 1 1 2 2 2 1)前の1211を読んで、「One 1 1 221」と言います 数n、1 <=n <=30があるとすると、n番目の項

  5. Pythonの最大サブアレイ

    整数配列Aがあるとします。長さが少なくとも1で、合計が最大である連続したサブ配列を見つけて、その合計を返す必要があります。したがって、配列AがA =[-2,1、-3,4、-1,2,1、-5,4]のようである場合、合計は6になり、サブ配列は[4、-1になります。 、2、1] これを解決するために、動的計画法のアプローチを使用してみます。 Aのサイズと同じ配列dpを定義し、0で埋めます dp [0]:=A [0] for i =1 to the size of A – 1 dp [i]:=最大dp [i – 1] +A[i]およびA[i] 最大値をdpで返す 理解を深める

  6. Pythonのプラスワン

    Aなどの整数の配列があるとします。Aはn個の要素を保持し、それらは負ではありません。配列A全体が1つの大きな数を表しています。したがって、A =[5、3、2、4]が指定された場合、それは数値5324を示します。その配列Aを取得し、数値を1増やして、指定された配列のように数値を返す必要があります。したがって、Aを増やすと、[5、3、2、5]になります。 これを解決するために、次の手順に従います。 配列を取得し、各文字を文字列に追加して文字列にします 次に、文字列を整数に変換してから、数値を1増やします 次に、各桁を分割して別の配列を作成します 理解を深めるために、次の実装を見てみましょう

  7. PythonのSqrt(x)

    数xがあり、xが非負数であるとします。ライブラリ関数を使用せずに、xの平方根を見つける必要があります。したがって、sqrt(x)を評価するための独自の関数を作成する必要があります。この関数では、出力の10進数が切り捨てられます。 xの値が4であるとすると、xが8の場合、結果は2になり、sqrt(8)は2.82842であるため、結果も2になります。ただし、整数部分のみを取り上げます。 これを解決するには、次の手順に従います- l =1、h =x + 1、回答=0を初期化します lの間、do mid =(h + l)/ 2 mid * mid <=xの場合、l:=mid + 1、

  8. ソートされた配列をPythonでマージ

    2つの並べ替えられた配列AとBがあるとします。それらをマージして、1つの並べ替えられた配列Cのみを形成する必要があります。リストのサイズは異なる場合があります。 たとえば、A=[1,2,4,7]およびB=[1,3,4,5,6,8]とすると、マージされたリストCは[1,1,2,3,4、 4,5,6,7,8] これを解決するには、次の手順に従います- ifine i:=0、j:=0 and end:=length of A – 1 =0であり、A[end]ではありません。 end:=end – 1 whilej

  9. Pythonの対称ツリー

    二分木が1つあるとします。ツリーが対称ツリーであるかどうかを確認する必要があります。鏡像を撮ったときに同じである場合、木は対称であると言われます。これらの2つのツリーから、最初のツリーは対称ですが、2番目のツリーは対称ではありません。 これを解決するために、次の手順に従います。 次の手順を再帰的に呼び出します。関数はsolve(root、root)になります node1とnode2が空の場合、trueを返します node1またはnode2のいずれかが空の場合、falseを返します node1.val =node2.valおよびsolve(node1.left、node2.rig

  10. Pythonでの二分木の最大深度

    二分木が1つあるとします。その木の最大の深さを見つけなければなりません。ツリーの最大深度は、最長のパスを使用してルートからリーフに到達するためにトラバースされるノードの最大数です。ツリーが次のようになっているとします。ここでは深さが3になります。 これを解決するために、次の手順に従います。 ここでは、再帰的アプローチを使用します。メソッドはsolve(root、depth =0)です。 ルートが空の場合は、深さを返します それ以外の場合は、solve(left、depth + 1)とsolve(left、depth + 1)の最大値を返します 理解を深めるために、次の実装を見てみ

  11. ソートされた配列をPythonでバイナリ検索ツリーに変換する

    ソートされた配列Aが1つあるとします。高さのバランスが取れた2分探索を1つ生成する必要があります。この問題では、高さのバランスが取れた二分木は、実際には、すべてのノードの2つのサブツリーの深さが1を超えて異ならない二分木です。配列が[-10、-3、0、5、9のようであるとします。 ]。したがって、考えられる出力の1つは、[0、-3、9、-10、null、5]のようになります。 これを解決するために、次の手順に従います。 Aが空の場合は、Nullを返します 中間要素を見つけて、ルートにします 配列を2つのサブ配列、中央要素の左側と中央要素の右側に分割します 左側のサブアレイと右側のサ

  12. Pythonでのパスの合計

    1つのツリーと合計があるとします。そのパスをたどると、与えられた合計と一致する合計が得られるように、1つのパスを見つける必要があります。ツリーが[0、-3,9、-10、null、5]のようで、合計が14であるとすると、パス0→9→5があります。 これを解決するために、次の手順に従います。 ルートがnullの場合は、Falseを返します 左右のサブツリーが空の場合、sum – root.val =0の場合はtrueを返し、それ以外の場合はfalseを返します 戻り値solve(root.left、sum – root.val)またはsolve(root.right、su

  13. Pythonで株式を売買するのに最適な時期

    配列Aがあるとします。ここで、A[i]はi日目の特定の株式の価格を示しています。最大の利益を見つけなければなりません。最大で1つのトランザクションを完了できます。 (取引とは、株式を売買することを意味します)。ただし、同時に複数の取引を行うことはできませんのでご注意ください。そのため、新しい株を購入する前に株を売る必要があります。 配列がA=[7、1、5、3、6、4]のようであるとすると、結果は5になります。ご覧のとおり、2日目(インデックス1)に購入すると、1は次のようになります。購入価格。次に、5日目に販売すると、利益は6 – 1=5になります。 これを解決するには、次の手順に従います

  14. Pythonで株式IIを売買するのに最適な時期

    配列Aがあるとします。ここで、A[i]はi日目の特定の株式の価格を示しています。最大の利益を見つけなければなりません。必要な数のトランザクションを完了することができます。 (取引とは、株式を売買することを意味します)。ただし、同時に複数の取引を行うことはできませんのでご注意ください。そのため、新しい株を購入する前に株を売る必要があります。 配列がA=[7、1、5、3、6、4]のようであるとすると、結果は7になります。ご覧のとおり、2日目(インデックス1)に購入すると、1は次のようになります。購入価格。次に、3日目に販売すると、利益は5 – 1 =4になります。次に4日目に購入し、5日目に販売

  15. Pythonで有効な回文

    英数字の値と記号を含む文字列があるとします。小文字と大文字もあります。文字列が回文を形成しているかどうかは、小文字(大文字は小文字に変換されます)、コンマ、スペースなどの他の記号のみを考慮して確認する必要があります。 文字列が「男、計画、運河:パナマ」のようなものであるとすると、これらのルールを考慮すると、「アマナプラナカナルパナマ」になります。これは回文です。 これを解決するには、次の手順に従います- define x =“” str −の各文字cを読み取ります cが小文字または数字の場合は、cをxに追加します それ以外の場合、cは大文字で、小文字に変換してxの後に追加します

  16. Pythonの単一の数値

    配列Aがあるとします。この配列には、2回出現する多数の数値があります。一度に見つけることができる要素は1つだけです。その配列からその要素を見つける必要があります。 A =[1、1、5、3、2、5、2]とすると、出力は3になります。各数値が2回あるため、XORを実行してその要素をキャンセルできます。 y XOR y =0がわかっているからです これを解決するために、次の手順に従います。 1つの変数res=0を取ります 配列Aの各要素eについて、プリフォームres =res XOR e return res 例 理解を深めるために、次の実装を見てみましょう- class Soluti

  17. Pythonで配列を回転

    配列Aがあるとします。kステップ右に回転する必要があります。したがって、配列がA =[5、7、3、6、8、1、5、4]、およびk =3の場合、出力は[1,5,4,5,7,3,6、 8]。手順は次のようなものです [4,5,7,3,6,8,1,5] [5,4,5,7,3,6,8,1] [1,5,4,5,7,3,6,8] これを解決するために、次の手順に従います。 nは配列のサイズです k =k mod n A =n –kからendまでのAのサブアレイ+0からn– k –1までのAのサブアレイ 理解を深めるために、次の実装を見てみましょう- 例 class Solut

  18. Pythonの1ビット数

    符号なしの番号nがあるとします。この数の2進表現で1の数を見つける必要があります。これは、ハミング重みとも呼ばれます。したがって、数値が000000101101のような場合、結果は4になります。 これを解決するために、これらの手順を使用します- 数値を取得してバイナリ文字列に変換します カウントを設定=0 バイナリ文字列の各文字eについて 文字が「1」の場合は、カウントを1増やします 返品数 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def hammingWeight(self, n):  

  19. PythonのHouseRobber

    都市があり、都市の各家に一定の金額があるとします。ある強盗は一晩でお金を奪いたいと思っています。市には1つのセキュリティシステムがあります。つまり、同じ夜に2つの連続した家が壊れた場合、自動的に警察に通報します。だから私たちは強盗が奪うことができる最大量を見つける必要がありますか? 1つの配列が提供されます。インデックスiで、A[i]はi番目の家に存在する量です。配列が次のようになっていると仮定します:A =[2、7、10、3、1]、結果は13になります。最大値はhouse1(値2)、house3(値10)、およびhouse5(値1)から取得されます。 )、合計は13 これを解決するため

  20. Pythonで素数を数える

    制限nがあるとします。 2からnの範囲に存在する素数の数を数える必要があります。したがって、n =10の場合、結果は4になります。10の前に4つの素数があるため、2、3、5、7になります。 これを解決するために、このアプローチに従います- カウント=0 サイズn+1の配列prime=を1つ取り、Falseで埋めます i =0からnの場合、do prime [i] =falseの場合、 カウントを1つ増やします set j =2 while j * i

Total 8994 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:118/450  20-コンピューター/Page Goto:1 112 113 114 115 116 117 118 119 120 121 122 123 124