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

Pythonでグローバル反転とローカル反転の数が同じかどうかを確認するプログラム


numsと呼ばれる個別の番号のリストがあるとします。ここで、グローバル反転とは、nums [i]>nums[j]のようなインデックスi nums [i+1]のようなインデックスiとi+1がある場合です。グローバル反転の数がローカル反転の数と等しいかどうかを確認する必要があります。

したがって、入力がnums =[3、2、4]のような場合、インデックス0と1は両方ともグローバルとローカルの反転であるため、出力はTrueになります。

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

  • l:=numsのサイズ
  • 0〜l-3の範囲のiの場合、do
    • i + 2からl-1の範囲のjについては、
      • nums [i]> nums [j]の場合、
        • Falseを返す
  • Trueを返す

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

class Solution:
   def solve(self, nums):
      l = len(nums)
      for i in range(l - 2):
         for j in range(i + 2, l):
            if nums[i] > nums[j]:
               return False
      return True
ob = Solution()
nums = [3, 2, 4]
print(ob.solve(nums))

入力

[3, 2, 4]

出力

True

  1. Pythonで葉のシーケンスが2つの葉と同じであるかどうかを確認するプログラム

    2つの二分木があるとします。両方の木の左から右への葉の順序が同じであるかどうかを確認する必要があります。 したがって、入力が次のような場合 両方のツリーのシーケンスが[2、6]であるため、出力はTrueになります。 これを解決するには、次の手順に従います。 c:=新しいリスト 関数inorder()を定義します。これが定着し、c cがnullの場合、 c:=新しいリスト rootがnullでない場合、 順序(ルートの左側、c) ルートの左側がnullで、ルートの右側がnullの場合、 cの最後にrootの値を挿入 順序(ルートの権利、c) return c

  2. ツリー内のすべての値がPythonで同じかどうかをチェックするプログラム

    二分木があるとすると、ツリー内のすべてのノードが同じ値であるかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- 関数solve()を定義します。これはルートになり、val ルートがnullの場合、 Trueを返す valが定義されていない場合、 val:=ルートの値 ルートの値がvalと同じで、solve(ルートの左側、val)およびsolve(ルートの右側、val)もtrueの場合、trueを返します 理解を深めるために、次の実装を見