日期:2026年2月7日
ZeroJudge 題目連結:c045. 00490 - Rotating Sentences
解題想法
這題我在 Python 是用二維串列儲存字串內容,在 C++ 則是用 vector 加 string 儲存內容。先讀取所有的測資,接下來用二層 for 迴圈讀取測資中的字元,外層處理欄位,內容從最後一列讀取到第 0 列。輸出答案時,如果這一列不是整整空白才要輸出。
Python 程式碼
使用時間約為 26 ms,記憶體約為 3.4 MB,通過測試。
import sys
lines = sys.stdin.readlines() # 一次讀取所有的資測,包含結尾的 \n
n = len(lines) # 共有 n 列
ans = [[] for _ in range(100)] # 答案,題目限制每列最多 100 個字元
for c in range(100): # 欄位,題目限制每列最多 100 個字元
for r in range(n-1, -1, -1): # 依序讀取第 n-1 到 0 列
m = len(lines[r]) - 1
if c < m: ans[c].append(lines[r][c]) # 如果 r 沒有出界,lines[r][c] 加入 ans[c]
else: ans[c].append(" ") # 反之,空格加入 ans[c]
for a in ans: # 依序讀取 ans 每一列的資料 a
row = "".join(a) # 將 a 組成字串 row
if not row.isspace(): # 如果 row 不是整列空白
sys.stdout.write(row + "\n")