Python 实现目标解析器命令解释程序


假设我们有一个目标解析器,可以解释给定的字符串命令。一个命令由以下组成:

  • 字母“G”,

  • 圆括号“()”,

  • 和/或“(al)”以某种顺序组合。

我们的目标解析器将“G”解释为字符串“G”,“()”解释为“o”,“(al)”解释为字符串“al”。最终解释的字符串将按原始顺序连接起来。因此,如果我们有字符串命令,我们必须找到目标解析器对命令的解释。

因此,如果输入类似于 command = "G()()()(al)(al)",则输出将为 Goooalal。

为了解决这个问题,我们将遵循以下步骤:

  • s := 空字符串

  • 对于 i 从 0 到 command 的大小 - 1,执行:

    • 如果 command[i] 不等于 "(" 且 command[i] 不等于 ")",则

      • s := s 连接 command[i]

    • 如果 command[i] 等于 "(" 且 command[i+1] 等于 ")" 且 i+1 < len(command),则

      • 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

更新于:2021年5月18日

396 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.