CodeSprout程式萌芽
中等第 397 題 · 字元雙欄卡
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Python

官方解答|字元雙欄卡

官方解答

Python #397:字元雙欄卡

解題規則

編輯需要從同一段文字與位置欄位取得兩項字元資訊。

匯入 string。兩項都使用原始輸入分別計算,不讓前一項改變後一項資料。第一項是依 text.split() 的空白規則分詞,對每詞使用 capitalize()(第一個字元轉大寫、其餘字元轉小寫),再用一個一般空格連接;第一個字元若是標點或數字,不會跳過它尋找字母。此規則等同 string.capwords(text);第二項是移除前後所有 ASCII 空白。回傳 [第一項,第二項]。

處理步驟

匯入 string;兩項皆用原始參數獨立計算,再依題目順序回傳兩格清單。 字元集合採 string 提供的 ASCII 常數,空白包含 Tab、換行等;前綴用切片,輪轉位置先取餘數。 string.capwords 先依 text.split() 分詞,再對每詞使用 capitalize();只有第一個字元轉大寫,其餘字元轉小寫,不會略過開頭標點或數字尋找字母。

為何正確

標準模組函式各自實作所指定的日期、文字或統計運算。篩選依原值、轉換依保留項目、摘要依規定集合進行,因此輸出的資料來源與型態一致。

邊界與注意事項

本題輸入範圍:text 長度 0~80,只含 ASCII 字元;n 為 0~100。string.whitespace 包含空格、Tab、換行等 ASCII 空白。

範例追蹤

依參數順序 text, n 傳入 ["",3]。直接將參數代入「標題式空白分詞/移除邊緣空白」指定運算。最後回傳 ['', '']。結果由 return 回傳,不使用 print。

複雜度

設輸入及必要輸出的總大小為 n;複製、轉換或掃描最壞時間 O(n),保存中間資料與回傳結果最壞需要 O(n) 空間。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

import string

def solve(text, n):
    return [string.capwords(text), text.strip(string.whitespace)]

留言討論 0