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

プログラマーの慣習の取り決めがPythonで正しいかどうかをチェックするプログラム


数値nがあり、これは規則を入力しようとしているプログラマーを表し、数値のリストもあるとします。規則1はプログラマーを表し、0は空のスペースを表します。現在、条件は2人のプログラマーが隣り合って座ることができないことです。n人のプログラマー全員がコンベンションに参加できるかどうかを確認する必要があります。

したがって、入力がn =2、convention =[0、0、1、0、0、0、1]のような場合、出力はTrueになります

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

  • 0からconvのサイズの範囲のiについては、
    • a:=0(i-1 <0の場合)それ以外の場合はi-1
    • b:=i+1の場合はconvのサイズ-1>=それ以外の場合はconvのサイズi+1
    • conv [i]が0と同じで、conv [a]が0と同じで、conv [b]が0と同じ場合、
      • conv [i]:=1
      • n:=n-1
  • n <=0の場合はtrueを返し、それ以外の場合は0を返します。

class Solution:
   def solve(self, n, conv):
      for i in range(len(conv)):
         a=0 if i-1<0 else i-1
         b=len(conv)-1 if i+1>=len(conv) else i+1
         if conv[i]==0 and conv[a]==0 and conv[b]==0:
            conv[i]=1
            n-=1
      return n<=0
ob = Solution()
n = 2
convention = [0, 0, 1, 0, 0, 0, 1]
print(ob.solve(n, convention))

入力

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

出力

True

  1. ポイントをチェックするプログラムがPythonで凹多角形を形成しているかどうか

    多角形の外側の点が時計回りにあるとします。これらの点が凸多角形を形成しているかどうかを確認する必要があります。ポリゴンの内角のいずれかが180°より大きい場合、ポリゴンは凹面であると言われます。 この図から、3つの連続するポイントごとに、CDEを除いて内角が180°以下であることが明らかです。 したがって、入力がpoints =[(3,4)、(4,7)、(7,8)、(8,4)、(12,3)、(10,1)、(5,2 )]の場合、出力はTrueになります。 これを解決するには、次の手順に従います- n:=ポイントのサイズ 0からポイントのサイズまでの範囲のiについては、 1の場

  2. ポイントをチェックするプログラムがPythonで凸包を形成しているかどうか

    ポリゴンの外側の点が時計回りにあるとします。これらの点が凸包を形成しているかどうかを確認する必要があります。 この図から、3つの連続するポイントごとに内角が180°以下であることが明らかです。したがって、すべての角度が180°以下の場合、ポリゴンは凸包になります。 したがって、入力がpoints =[(3,4)、(4,7)、(7,8)、(11,6)、(12,3)、(10,1)、(5,2 )]の場合、出力はTrueになります。 これを解決するには、次の手順に従います- n:=ポイントのサイズ 0からポイントのサイズまでの範囲のiについては、 1の場合はpoints[i-2]、