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

Pythonでゴールパーサー解釈コマンドを見つけるプログラム


特定の文字列コマンドを解釈できるゴールパーサーがあるとします。コマンドは

で構成されます
  • アルファベット「G」、

  • 開き括弧「()」

  • および/または「(al)」の順序。

ゴールパーサーは、「G」を文字列「G」、「()」を「o」、「(al)」を文字列「al」として解釈します。最後に解釈された文字列は、元の順序で連結されます。したがって、文字列コマンドがある場合は、ゴールパーサーによるコマンドの解釈を見つける必要があります。

したがって、入力がcommand ="G()()()(al)(al)"のような場合、出力はGoooalalになります。

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

  • s:=空白の文字列

  • 0からコマンドのサイズまでの範囲のiの場合-1、実行

    • command [i]が「(」と同じでなく、command [i]が「)」と同じでない場合、

      • s:=s連結コマンド[i]

    • command [i]が「(」と同じで、command [i + 1]が「)」と同じで、i + 1

      • s:=s連結'o'

    • command [i]が「(」と同じ場合、

      • 次のイテレーションに行く

    • command[i]が")"と同じ場合、

      • 次のイテレーションに行く

  • sを返す

例(Python)

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

def solve(command):
   s=""
   for i in range(len(command)):
      if command[i]!="(" and command[i]!=")":
         s+=command[i]
      if command[i]=="(" and command[i+1]==")" and i+1<len(command):
         s+='o'
      if command[i]=="(":
         continue
      if command[i]==")":
         continue
   return s

command = "G()()()(al)(al)"
print(solve(command))

入力

"G()()()(al)(al)"

出力

Goooalal

  1. Pythonでポリゴンの領域を見つけるプログラム

    順序付けられたポイントのリストが2D平面上の単純なポリゴンエンドポイントを表すとします。このポリゴンの領域を見つける必要があります。 したがって、入力がpoints =[(0、0)、(0,5)、(3、5)、(3,0)]のような場合、出力は15になります。 これを解決するには、次の手順に従います- 関数getInfo()を定義します。これにはx1、y1、x2、y2が必要です return x1 * y2-y1 * x2 メインの方法から、次の手順を実行します N:=ポイントのサイズ (firstx、firsty):=points [0] (prevx、prevy):=(fir

  2. Pythonでポリゴンの周囲を見つけるプログラム

    順序付けられたポイントのリストが2D平面上の単純なポリゴンエンドポイントを表すとします。このポリゴンの周囲を見つける必要があります。 したがって、入力がpoints =[(0、0)、(0,5)、(3、5)、(3,0)]のような場合、出力は16になります。 2つの辺の長さは3で、2つの辺の長さは5なので、2 * 5 + 2 * 3=16です。 これを解決するには、次の手順に従います- 関数getInfo()を定義します。これにはx1、y1、x2、y2が必要です ユークリッド距離である((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))の平方根を返します (x1、y1)