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

2つの数値のバイナリ表現がPythonのアナグラムであるかどうかを確認します


xとyの2つの数値があるとすると、xとyの2進表現が互いにアナグラムであるかどうかを確認する必要があります。

したがって、入力がx =9 y =12の場合、9のバイナリ表現は1001、12のバイナリ表現は1100であるため、出力はTrueになります。したがって、これら2つは互いにアナグラムです。

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

  • xとyの1の数が同じである場合、
    • Trueを返す
  • Falseを返す

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

def set_bit_count(num) :
   cnt = 0
   while num:
      cnt += num & 1
      num >>= 1
   return cnt
def solve(x, y) :
   if set_bit_count(x) == set_bit_count(y):
      return True
   return False
x = 9
y = 12
print(solve(x, y))

入力

9, 12

出力

True

  1. 2つの二分木のリーフトラバーサルがPythonで同じかどうかを確認します

    2分木があるとします。これら2本の木の葉の走査が同じかどうかを確認する必要があります。私たちが知っているように、葉の探索は左から右に横断する葉のシーケンスです。 したがって、入力が次のような場合 両方のツリーの左走査シーケンスが同じであるため、出力はTrueになります。つまり、[5、7、8]です。 これを解決するには、次の手順に従います- s1:=新しいリスト、s2:=別の新しいリスト r1をs1に挿入し、r2をs2に挿入します s1とs2が空ではない場合は、 s1が空の場合、またはs2が空の場合、 Falseを返す r1_node:=s1の最後のノードであり、s1

  2. 2つのツリーのすべてのレベルがアナグラムであるかどうかをPythonで確認します

    2つの二分木が提供されているとします。二分木の各レベルが他の二分木の同じレベルのアナグラムであるかどうかを確認する必要があります。アナグラムの場合はTrueを返し、そうでない場合はFalseを返します。 したがって、入力が次のような場合 、出力はTrueになります。 これを解決するには、次の手順に従います- tree_1は最初のツリーのルートノードであり、tree_2は2番目のツリーのルートノードです。 tree_1がnullと同じで、tree_2がnullと同じ場合、 Trueを返す tree_1がnullと同じであるか、tree_2がnullと同じである場合、 Fa