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

Pythonでの長方形のオーバーラップ


リスト[x1、y1、x2、y2]として表される長方形があるとします。ここで、(x1、y1)は左下隅の座標であり、(x2、y2)はその上からの座標です。右隅。これで、交差する領域が正の場合、2つの長方形が重なります。したがって、コーナーまたはエッジでのみ接触する2つの長方形は重なっていないことがわかります。

2つの(軸に沿った)長方形がある場合、それらが重なっているかどうかを確認する必要があります。

したがって、入力がR1 =[0,0,2,2]、R2 =[1,1,3,3]の場合、出力はTrueになります。

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

  • R1 [0]> =R2[2]またはR1[2]<=R2[0]またはR1[3]<=R2[1]またはR1[1]>=R2 [3]の場合、
    • Falseを返す
  • それ以外の場合、
    • Trueを返す

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

class Solution:
   def isRectangleOverlap(self, R1, R2):
      if (R1[0]>=R2[2]) or (R1[2]<=R2[0]) or (R1[3]<=R2[1]) or
         (R1[1]>=R2[3]):
         return False
      else:
   return True
ob = Solution()
print(ob.isRectangleOverlap([0,0,2,2],[1,1,3,3]))

入力

[0,0,2,2],[1,1,3,3]

出力

True

  1. Pythonのヒストグラムで最大の長方形

    ヒストグラムの高さを表す整数配列が1つあるとします。各バーには単位幅があります。次のように最大面積の長方形を見つける必要があります- これを解決するには、次の手順に従います- スタックを作成し、i:=0、ans:=0を設定します <高さのサイズなら スタックの要素が0であるか、スタックの最上位要素の高さが<=height [i]の場合、 iをスタックに挿入し、iを1増やします それ以外の場合- x:=スタックの最上位要素、スタックから削除します。 height:=heights [x] temp:=height *(i * stac

  2. PythonでIsNumber()関数を実装する

    この記事では、 isNumber()の実装について説明します。 Python3.xを使用するメソッド。またはそれ以前。 このメソッドは、入力として文字列型を受け取り、入力された文字列が数値であるかどうかに応じてブール値のTrueまたはFalseを返します。これを行うには、tryおよびexceptステートメントを使用して例外処理を利用します。 例 いくつかの例を見てみましょう- # Implementation of isNumber() function def isNumber(s):    if(s[0] =='-'):   &nbs