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の場合、
- 現在のループから抜け出します
- i + jが0と同じ場合、
- L2の各jについて、
- 戻り値-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
-
Pythonでノードを削除してフォレストを返す
二分木のルートがあるとすると、ツリー内の各ノードには一意の値があります。 to_deleteの値を持つすべてのノードを削除すると、フォレストが残ります。残りの森で木の根を見つけなければなりません。したがって、入力が次のような場合 to_delete配列が[3,5]のような場合、出力はになります。 これを解決するには、次の手順に従います- 配列解像度を定義する メソッドsolve()を定義します。これにより、ノード、to_delete配列、およびノードがルートであるかどうかを示すブール型の情報が取得されます。メソッドは以下のように動作します- ノードがnullの場合、nul
-
Pythonで文字列を評価し、オブジェクトを返すにはどうすればよいですか?
組み込みのeval()関数には文字列引数が必要です。ただし、Pythonインタープリターは、文字列をPython式として扱い、それが有効かどうかを評価してから、式の結果である型オブジェクトを返します。 算術式を含む文字列 >>> x=eval('2+2') >>> type(x) <class 'int'> >>> x 4 リスト/タプルに評価する文字列 >>> x=eval('tuple([1,2,3])') >>> x (1, 2, 3)