e241: 猜密碼這回事
Tags :
Accepted rate : 2人/7人 ( 29% ) [非即時]
評分方式:
Special

最近更新 : 2019-05-24 00:09

Content

前言

這是一題實驗性的互動題,基於技術上的限制,僅能使用 Python 作答。


在 X 大資工系裡,小 C 和小 S 是無人不曉的一對情侶。煞遍眾人的他們卻也有平凡的難題要面對。

有天小 C 在小 S 的筆電發現命名為「期末作業」的資料夾,便好奇地點了下去,然而系統馬上跳出要求輸入密碼的視窗,從介面看來像是小 S 自行設計的防護措施。

事後,小 C 越想越不對勁,明明期中考都還是下個月的事,難道小 S 真在為期末準備?每每提起此事,小 S 皆顧左右而言他,此舉加深小 C 的懷疑,決定發揮自身專長一探究竟。

小 C 知道小 S 總是用長度介於 4 ~ 32 的 01 字串當作密碼,而且在嘗試逆向工程後只找到以下程式碼片段。

其中 pwd 即為密碼,小 C 希望寫個程式來破解密碼,你能幫幫她嗎?


實作細節

你必須實作一個函式 crack(),回傳你認為是密碼的字串,只要不超過時限,你可以呼叫任意次 guess 來檢查自己的猜測是否為正確答案。

如果回傳答案長度錯誤,評測程式會提示「長度不正確」;若長度正確但內容不符,則提示「答案不正確」。

解答用的程式碼必須以字串方式輸出,例如以下程式碼能正確無誤的拿到 16% 的分數,其輸出即為範例輸出。

https://ideone.com/eSPO8o

除了第一筆測資外,密碼的長度和內容在不同 submission 間不保證相同。

注意逸出字元(Escape Character)的處理,建議先在本機檢查輸出再上傳。

Input

本題沒有輸入。

Output

輸出作為解答的程式碼。

Sample Input

										
Sample Output
def crack():
    assert(guess('') == False)
    assert(guess('11111') == False)
    assert(guess('1111') == True)
    return '1111'
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (16%): 1.0s , <1K
公開 測資點#1 (16%): 1.0s , <1K
公開 測資點#2 (17%): 5.0s , <1K
公開 測資點#3 (17%): 3.0s , <1K
公開 測資點#4 (17%): 2.0s , <1K
公開 測資點#5 (17%): 1.0s , <1K
Hint :

註 1:Special Judge 確實使用 pwd 做為變數名稱,但這並不代表你能用 global pwd 存取到 pwd,而嘗試存取 pwd 也和此題解法沒有關聯。

註 2:也不需要覆寫任何 Special Judge 上已有的變數、類別、函式等等。

測資 #00:密碼 = '1111'

測資 #01:密碼長度 = 8

測資 #02, #03:密碼長度 = 32

測資 #04, #05:24 < 密碼長度 <= 32

Tags:
出處:
[管理者:
icube (輸光光)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」