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

PythonのKと-K


numsと呼ばれる数のリストがあるとすると、kと-kの両方がnumsに存在する最大の数kを見つける必要があります(同じ数でもかまいません)。そのような要素がない場合は、-1を返します。

したがって、入力が[-5、2、9、-6、5、-9]の場合、出力は9になります。

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

  • L1:=0と正の要素の数値のリスト
  • L2:=0と負の要素の数値のリスト
  • L1を逆の順序で並べ替えます
  • リストL2を並べ替える
  • L1の各iについて、
    • L2の各jについて、
      • i + jが0と同じ場合、
        • 私を返す
      • それ以外の場合、i + j> 0の場合、
        • 現在のループから抜け出します
  • 戻り値-1

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

class Solution:
   def solve(self, nums):
      L1=[i for i in nums if i>=0]
      L2=[i for i in nums if i<=0]
      L1.sort(reverse=True)
      L2.sort()
      for i in L1:
         for j in L2:
            if i+j==0:
               return i
            elif i+j>0:
               break
      return -1
ob = Solution()
nums = [-5, 2, 9, -6, 5, -9]
print(ob.solve(nums))

入力

[-5, 2, 9, -6, 5, -9]

出力

9

  1. Pythonでノードを削除してフォレストを返す

    二分木のルートがあるとすると、ツリー内の各ノードには一意の値があります。 to_deleteの値を持つすべてのノードを削除すると、フォレストが残ります。残りの森で木の根を見つけなければなりません。したがって、入力が次のような場合 to_delete配列が[3,5]のような場合、出力はになります。 これを解決するには、次の手順に従います- 配列解像度を定義する メソッドsolve()を定義します。これにより、ノード、to_delete配列、およびノー​​ドがルートであるかどうかを示すブール型の情報が取得されます。メソッドは以下のように動作します- ノードがnullの場合、nul

  2. Pythonで文字列を評価し、オブジェクトを返すにはどうすればよいですか?

    組み込みのeval()関数には文字列引数が必要です。ただし、Pythonインタープリターは、文字列をPython式として扱い、それが有効かどうかを評価してから、式の結果である型オブジェクトを返します。 算術式を含む文字列 >>> x=eval('2+2') >>> type(x) <class 'int'> >>> x 4 リスト/タプルに評価する文字列 >>> x=eval('tuple([1,2,3])') >>> x (1, 2, 3)