司法三等申論題
110年
[檢察事務官電子資訊組] 程式語言
第 三 題
三、請使用 C/C++、Java 或 Python 任一程式語言撰寫一支加密演算法程式,讓使用者輸入一語句,然後將語句中的每個大小寫字母轉換成其反序的字母(A↔Z、B↔Y、C↔X、…、x↔c、y↔b、z↔a),若所輸入的語句中有不是英文字母的字元則以原字元輸出。例如:所輸入的語句為「abcd6ZYXW$」,則輸出應為「zyxw6ABCD$」;所輸入的語句為「R olev blf!」,則輸出應為「I love you!」。(25 分)
📝 此題為申論題
思路引導 VIP
看到這題應先想到「字元編碼(ASCII)的連續性」與「字串走訪」技巧。利用字母的 ASCII 值計算位移量,大寫轉換公式為 'Z' - (ch - 'A'),小寫為 'z' - (ch - 'a'),並透過內建函式或範圍判斷字元類型,最後透過指標在記憶體中進行原地修改(In-place modification)以優化空間複雜度。
🤖
AI 詳解
AI 專屬家教
【破題】 本題核心在於考驗對「字元編碼(如 ASCII)之數學特性」以及「字串記憶體走訪」的掌握。透過計算字元在字母表中的相對位移(Offset),可以輕易算出其反序對應字元。 【程式碼實作】
▼ 還有更多解析內容