Python
 Computer >> コンピューター >  >> プログラミング >> Python

4PythonのSumII


整数値の4つのリストA、B、C、Dがあるとすると、A [i ] + B [j] + C [k] +D[l]はゼロです。すべてのA、B、C、Dが同じ長さのNを持ち、0≤N≤500であると考えます。すべての整数が-228から228-1の範囲にあり、結果が最大で231-1になることが保証されていることを覚えておいてください。入力はA=[1、2]、B =[-2、-1]、C =[-1、2]、D =[0、2]であり、出力は2になります。 2つのタプル、それらは(0、0、0、1)であるため、A [0] + B [0] + C [0] + D [1] =1 +(-2)+(-1)+ 2 =0 、および別のタプルは(1、1、0、0)、A [1] + B [1] + C [0] + D [0] =2 +(-1)+(-1)+ 0 =0

これを解決するには、次の手順に従います-

  • 合計と呼ばれる1つのマップを作成します
  • Aの各要素iについて
    • Bの各要素jについて
      • i + jが合計マップにない場合は、sums [i + j]:=1
      • を設定します。
      • それ以外の場合は、合計の値を増やします[i + j]
  • カウンター:=0
  • Cの各要素iについて
    • Dの各要素jについて
      • 合計が(-1)*(i + j)の場合、counter:=counter + sums [-1 *(i + j)]
  • リターンカウンター

理解を深めるために、次の実装を見てみましょう-

class Solution(object):
   def fourSumCount(self, A, B, C, D):
      sums ={}
      for i in A:
         for j in B:
            if i+j not in sums:
               sums[i+j] = 1
            else:
               sums[i+j] +=1
      counter = 0
      for i in C:
         for j in D:
            if -1 * (i+j) in sums:
               #print(-1 * (i+j))
               counter+=sums[-1*(i+j)]
      return counter
ob1 = Solution()
print(ob1.fourSumCount([1,2], [-2,-1], [-1,2], [0,2]))

入力

[1,2]
[-2,-1]
[-1,2]
[0,2]

出力

2

  1. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. PythonでのQuine

    Quineは、入力を受け取らないプログラムですが、出力を生成します。独自のソースコードが表示されます。さらに、Quineにはいくつかの条件があります。プログラム内でソースコードファイルを開くことができません。 サンプルコード a=a=%r;print (a%%a);print (a%a) 出力 a=a=%r;print (a%%a);print (a%a) このクワインはどのように機能していますか? ここでは、単純な文字列フォーマットが機能しています。変数「a」を定義し、a内に「a =%r; print(a %% a)」を格納します。次に、aの値を出力し、%rをaの値に置き換