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

Pythonでのフェアキャンディスワップ


AとBが2人の友達だとします。彼らはさまざまなサイズのキャンディーバーを持っています。ここで、A [i]はAが所有するキャンディーのi番目のバーのサイズであり、B[j]はBが所有するキャンディーのj番目のバーのサイズです。

彼らは友達なので、交換後、AとBの両方が同じ合計量のキャンディーを持つように、それぞれ1つのキャンディーバーを交換したいと考えています。 (人が持っているキャンディーの総量は、持っているキャンディーバーのサイズの合計です。)整数配列を返す必要があります。ans[0]は、Aが交換する必要のあるキャンディーバーのサイズです。 ans [1]は、Bが交換する必要のあるキャンディーバーのサイズです。複数の回答がある場合は、そのうちの1つのみを返します。

たとえば、A =[1、2]およびB =[2、3]の場合、出力は[1、2]

になります。

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

  • Aの合計とBの合計の差を取り、それを2で割って、整数部分をdiffにします
  • Bをセットに変換する
  • for i in A
    • i – Bでdiffの場合、[i、i –diff]を返します

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

class Solution(object):
   def fairCandySwap(self, A, B):
      diff = (sum(A) - sum(B))//2
      B=set(B)
      for i in A:
         if i- diff in B:
            return [i,i-diff]
ob1 = Solution()
print(ob1.fairCandySwap([1,2], [2,3]))

入力

[1,2]
[2,3]

出力

[1,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を使用してスワップファイルを削除するにはどうすればよいですか?

    スワップファイルの拡張子は.swpです。フォルダからすべてのスワップファイルを再帰的に削除する最も簡単な方法は、拡張子名(.swp)が付いた文字列関数endswithを使用して、ファイル名を照合し、これらのファイルを削除することです。 例 import os, os.path mypath = "my_folder" for root, dirs, files in os.walk(mypath):     for file in filter(lambda x: x.endswith('.swp'), files):   &