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
-
Pythonで1つのツリーが他のツリーのサブツリーであるかどうかを確認するプログラム
2つの二分木があるとします。 2番目のツリーが最初のツリーのサブツリーであるかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これはルート、ターゲットになります ルートがnullで、ターゲットもnullの場合、 Trueを返す ルートがnullまたはターゲットがnullの場合、 Falseを返す ルートの値がターゲットの値と同じである場合、 戻り値solve(ルートの左、ターゲットの左)とsolve(ル
-
Pythonで1つの値がBSTに存在するかどうかを確認するプログラム
二分探索木とvalという別の入力があるとすると、valがツリーに存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 val =7の場合、ツリーに7が存在するため、出力はTrueになります。 これを解決するために、次の手順に従います- 関数solve()を定義します。これはルートになります、val ルートがnullの場合、 Falseを返す ルートのデータがvalと同じ場合、 Trueを返す ルートのデータが