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

Pythonで幅の昇順ではない順序で長方形を再配置できるかどうかを確認します


長さと幅を使用して表された長方形のリストがあるとします。任意の長方形を90度回転できるため、回転後、幅は長さになり、その逆も同様です。長方形を幅の増加しない順序で並べ替えることができるかどうかを確認する必要があります。

したがって、入力がrects =[[4、5]、[5、7]、[4、6]]のような場合、回転すると幅が[5,7,6]になるため、出力はTrueになります。最後の2つの長方形の場合、幅は[5,5,4]になり、増加しません。

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

  • m:=99999
  • 0からrectのサイズまでの範囲のiについては、
    • i番目の長方形の長さと幅の最大値が<=mの場合、
      • m:=i番目の長方形の長さと幅の最大値
    • それ以外の場合、i番目の長方形の長さと幅の最小値<=m
      • m:=i番目の長方形の最小の長さと幅
    • それ以外の場合、
      • Falseを返す
  • Trueを返す

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

def solve(rect):
   m = 99999
   for i in range(len(rect)):
      if max(rect[i][0], rect[i][1]) <= m:
         m = max(rect[i][0], rect[i][1])
      elif min(rect[i][0], rect[i][1]) <= m:
         m = min(rect[i][0], rect[i][1])
      else:
         return False
   return True
rects = [[4, 5], [5, 7], [4, 6]]
print(solve(rects))

入力

[[4, 5], [5, 7], [4, 6]]

出力

True

  1. PythonでベクトルAを回転させ、それにベクトルCを追加することで、ベクトルBに到達できるかどうかを確認します。

    2D平面に3つのベクトルx、y、zがあるとします。ベクトルxからベクトルyを90度(時計回り)回転させるか、必要に応じて何度でもzを追加して、ベクトルyを取得できるかどうかを確認する必要があります。 したがって、入力がx =(-4、-2)y =(-1、2)z =(-2、-1)のような場合、位置を取得するためにxにzを追加できるため、出力はTrueになります。 (-2、-1)、次に時計回りに90°回転して(-1、2)を取得します。 これを解決するには、次の手順に従います- 関数util()を定義します。これにはp、q、r、sが必要です d:=r * r + s * s dが0

  2. Python-辞書が空かどうかを確認します

    データセットの分析中に、空の辞書を処理しなければならない状況に遭遇する可能性があります。この記事では、辞書が空かどうかを確認する方法を説明します。 ifの使用 ディクショナリに要素がある場合、if条件はtrueと評価されます。それ以外の場合は、falseと評価されます。したがって、以下のプログラムでは、if条件のみを使用して辞書の空をチェックします。 例 dict1 = {1:"Mon",2:"Tue",3:"Wed"} dict2 = {} # Given dictionaries print("The original