Program to find goal parser interpretation command in Python

PythonServer Side ProgrammingProgramming

Suppose we have a Goal Parser that can interpret a given string command. A command consists of

  • An alphabet "G",

  • Opening and closing parenthesis "()"

  • and/or "(al)" in some order.

Our Goal Parser will interpret "G" as the string "G", "()" as "o", and "(al)" as the string "al". Finally interpreted strings are then concatenated in the original order. So if we have string command, we have to find the Goal Parser's interpretation of command.

So, if the input is like command = "G()()()(al)(al)", then the output will be Goooalal.

To solve this, we will follow these steps −

  • s:= blank string

  • for i in range 0 to size of command - 1, do

    • if command[i] is not same as "(" and command[i] is not same as ")", then

      • s := s concatenate command[i]

    • if command[i] is same as "(" and command[i+1] is same as ")" and i+1<len(command) , then

      • s := s concatenate 'o'

    • if command[i] is same as "(", then

      • go for next iteration

    • if command[i] is same as ")", then

      • go for next iteration

  • return s

Example (Python)

Let us see the following implementation to get better understanding −

 Live Demo

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))

Input

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

Output

Goooalal
raja
Published on 18-May-2021 11:39:57
Advertisements