日期:2025年9月30日
ZeroJudge 題目連結:e698. OREOREO!
解題想法
我先計算 O 的部分較寬及 RE 的部分較寬兩種狀況下,分別要印出的 O 及 RE 的字串。接下來讀取 n 塊餅乾的組成方式,依序輸出每一塊餅乾對應的形狀。
Python 程式碼
使用時間約為 28 ms,記憶體約為 3.8 MB,通過測試。
import sys
for line in sys.stdin:
w1, h1 = map(int, line.split())
w2, h2 = map(int, sys.stdin.readline().split())
c1, c2 = sys.stdin.readline().split()
if w1 > w2: # O 的部分較寬
O = c1*w1
RE = " "*((w1-w2)//2) + c2*w2
else: # RE 的部分較寬
O = " "*((w2-w1)//2) + c1*w1
RE = c2*w2
n = int(sys.stdin.readline()) # 接下來有 n 塊餅乾
for _ in range(n): # 執行 n 次
cookie = sys.stdin.readline().strip() # 餅乾的組成
i = 0 # 從 cookie 讀取資料用的索引值
while i < len(cookie): # 如果 i 還沒有出界時繼續執行
if cookie[i] == "O": # 如果是 O
for _ in range(h1): print(O) # 印出 h1 行的 O
i += 1 # i 加 1
elif cookie[i] == "R": # 如果是 RE
for _ in range(h2): print(RE) # 印出 h2 行的 RE
i += 2 # i 加 2
print() # 跑完一塊餅乾要換行