Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 목표 파서 해석 명령을 찾는 프로그램

<시간/>

주어진 문자열 명령을 해석할 수 있는 Goal Parser가 있다고 가정합니다. 명령은

로 구성됩니다.
  • 알파벳 "G",

  • 여는 괄호와 닫는 괄호 "()"

  • 및/또는 "(al)" 어떤 순서로.

Goal Parser는 "G"를 문자열 "G"로, "()"를 "o"로, "(al)"을 문자열 "al"로 해석합니다. 마지막으로 해석된 문자열은 원래 순서로 연결됩니다. 따라서 문자열 명령이 있는 경우 Goal Parser의 명령 해석을 찾아야 합니다.

따라서 입력이 command ="G()()()(al)(al)"과 같으면 출력은 Goooalal이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • s:=빈 문자열

  • 범위 0에서 명령 크기 - 1에 있는 i에 대해 수행

    • command[i]가 "("와 같지 않고 command[i]가 ")"와 같지 않으면

      • s :=s 연결 명령[i]

    • command[i]가 "("와 같고 command[i+1]이 ")" 및 i+1

      • s :=s 연결 'o'

    • 명령[i]이 "("과 같으면

      • 다음 반복으로 이동

    • 명령[i]이 ")"와 같으면

      • 다음 반복으로 이동

  • 반환 s

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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