Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm lệnh dịch của Goal Parser trong Python

Giả sử ta có Goal Parser dịch chuỗi lệnh. Lệnh bao gồm:

  • Chữ cái "G"
  • Ngoặc đơn mở và đóng "()"
  • Và/hoặc "(al)" theo thứ tự nào đó

Parser dịch: "G" → "G", "()" → "o", "(al)" → "al". Các chuỗi dịch sau đó nối theo thứ tự gốc. Cho chuỗi command, tìm bản dịch của Goal Parser.

Ví dụ: command = "G()()()(al)(al)", kết quả là "Goooalal".

Giải thuật

  1. s := ""
  2. For i từ 0 đến len(command) - 1:
    • Nếu command[i] != "(" và command[i] != ")": s += command[i]
    • Nếu command[i] == "(" và command[i+1] == ")" và i+1 < len(command): s += 'o'
    • Nếu command[i] == "(": continue
    • Nếu command[i] == ")": continue
  3. Trả về s

Ví dụ (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))

Input

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

Output

Goooalal