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
-
Pythonのヒストグラムで最大の長方形
ヒストグラムの高さを表す整数配列が1つあるとします。各バーには単位幅があります。次のように最大面積の長方形を見つける必要があります- これを解決するには、次の手順に従います- スタックを作成し、i:=0、ans:=0を設定します <高さのサイズなら スタックの要素が0であるか、スタックの最上位要素の高さが<=height [i]の場合、 iをスタックに挿入し、iを1増やします それ以外の場合- x:=スタックの最上位要素、スタックから削除します。 height:=heights [x] temp:=height *(i * stac
-
PythonでIsNumber()関数を実装する
この記事では、 isNumber()の実装について説明します。 Python3.xを使用するメソッド。またはそれ以前。 このメソッドは、入力として文字列型を受け取り、入力された文字列が数値であるかどうかに応じてブール値のTrueまたはFalseを返します。これを行うには、tryおよびexceptステートメントを使用して例外処理を利用します。 例 いくつかの例を見てみましょう- # Implementation of isNumber() function def isNumber(s): if(s[0] =='-'): &nbs