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

Pythonで1つのリストのサブリストを逆にして2番目のリストを作成するかどうかをチェックするプログラム


AとBという2つの番号のリストがあるとします。Aのサブリストを取得して、それを逆にする必要があります。次に、AをBに変えることができるかどうかを確認します。サブリストを取得して、何度でも元に戻すことができます。

したがって、入力がA =[2、3、4、9、10]、B =[4、3、2、10、9]のようである場合、[2,3,4]を逆にできるため、出力はTrueになります。 ]および[9,10]。

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

  • res:=マップ、最初は空
  • numsのnごとに、
    • res [n]:=res [n] + 1
  • ターゲットの各tについて、
    • res [t]:=res [t]-1
  • resの値のすべての要素が0と同じ場合、trueを返します。

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

from collections import defaultdict
class Solution:
   def solve(self, nums, target):
      res = defaultdict(int)
      for n in nums:
         res[n] += 1
      for t in target:
         res[t] -= 1
      return all(n == 0 for n in res.values())
ob = Solution()
A = [2, 3, 4, 9, 10]
B = [4, 3, 2, 10, 9]
print(ob.solve(A, B))

入力

[2, 3, 4, 9, 10], [4, 3, 2, 10, 9]

出力

True

  1. Pythonで1つのツリーが他のツリーのサブツリーであるかどうかを確認するプログラム

    2つの二分木があるとします。 2番目のツリーが最初のツリーのサブツリーであるかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これはルート、ターゲットになります ルートがnullで、ターゲットもnullの場合、 Trueを返す ルートがnullまたはターゲットがnullの場合、 Falseを返す ルートの値がターゲットの値と同じである場合、 戻り値solve(ルートの左、ターゲットの左)とsolve(ル

  2. Pythonで1つの値がBSTに存在するかどうかを確認するプログラム

    二分探索木とvalという別の入力があるとすると、valがツリーに存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 val =7の場合、ツリーに7が存在するため、出力はTrueになります。 これを解決するために、次の手順に従います- 関数solve()を定義します。これはルートになります、val ルートがnullの場合、 Falseを返す ルートのデータがvalと同じ場合、 Trueを返す ルートのデータが