賽題介紹
挑戰(zhàn)介紹
三角形密碼指的是將一串字符串按照正直角三角形的形狀排列,傳遞的信息隱藏在每一行的最后一個(gè)字符,然后將所有的行的最后一個(gè)字符依次連接,就是需要傳遞的信息。
例如加密后的字符串是:我們愛(ài)的是藍(lán)色的心橋
將加密字符串按照正直角三角形填充后如下:
我 | |||
---|---|---|---|
們 | 愛(ài) | ||
的 | 是 | 藍(lán) | |
色 | 的 | 心 | 橋 |
提取每一行的最后一個(gè)字符,然后連起來(lái)就是:我愛(ài)藍(lán)橋,也就是傳遞的信息。
挑戰(zhàn)目標(biāo)
補(bǔ)充文件 triangle.py
下 triangle_decryption(text)
函數(shù)中的 TODO 部分,使其實(shí)現(xiàn)我們需要的功能:
- 輸入一段字符串,使用正直角三角形進(jìn)行破解,返回破解的內(nèi)容。
- 如果最后一行字符串不足三角形的邊長(zhǎng),則獲取最后一個(gè)字符。例如密文“我們愛(ài)的你”,對(duì)應(yīng)的明文是“我愛(ài)你”。
- 如果輸入的字符串前后有空格,請(qǐng)先去掉空格再使用正直角三角形破解。字符串中間的空格不需要去掉。
- 如果輸入的內(nèi)容不是字符串或字符串為空則返回
None
。
def triangle_decryption(text: str) -> str:
"""TODO
"""
decryption_text : str = ''
return decryption_text
挑戰(zhàn)要求
- 題目需使用 Python3 完成,不能使用標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)。
- 函數(shù)傳入 text 為字符串類型,可能為空、
None
等值。 - 不得修改文件路徑、文件名
triangle.py
以及函數(shù)名triangle_decryption(text)
。 - 請(qǐng)只保留文件
triangle.py
及文件中函數(shù),不要添加測(cè)試或執(zhí)行代碼,避免檢測(cè)時(shí)出錯(cuò)。 - 線上環(huán)境調(diào)試代碼時(shí),請(qǐng)使用
python3 triangle.py
命令調(diào)用 Python3。
參考樣例
# 樣例 1
text = "我們愛(ài)的是藍(lán)色的心橋"; decryption_text = "我愛(ài)藍(lán)橋"
# 樣例 2
text = "我們愛(ài)的你"; decryption_text = "我愛(ài)你"
# 樣例 3
text = " 我們愛(ài)的是藍(lán)色的心橋"; decryption_text = "我愛(ài)藍(lán)橋"
# 樣例 4
text = "我 愛(ài)你"; decryption_text = "我愛(ài)你"
# 樣例 5
text = None; decryption_text = None
注意:最終實(shí)現(xiàn)效果以完全滿足要求為準(zhǔn),而不是僅滿足如上樣例。
題解
解題思路
簡(jiǎn)單的模擬題文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-415113.html
- 要注意對(duì)傳入?yún)?shù)類型的檢查,包括空字符串等情形。
- 當(dāng)輸入僅有一個(gè)字符的時(shí)候,原樣返回即可。
- 需要考慮好對(duì)邊界情況的判斷。
- 最后使用
join
方法將列表拼接為字符串返回即可。
def triangle_decryption(text: str) -> str:
"""TODO
"""
result = []
i = 2
index = 0
if text == '' or None or not isinstance(text, str):
return None
text = text.strip()
if len(text) == 1:
return text
while index < len(text):
result.append(text[index])
index = index + i
i = i + 1
if index + 1 >= len(text):
result.append(text[-1])
break
decryption_text: str = "".join(result)
return decryption_text
題目來(lái)源:藍(lán)橋破解三角形密碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-415113.html
到了這里,關(guān)于藍(lán)橋 卷“兔”來(lái)襲編程競(jìng)賽專場(chǎng)-03破解三角形密碼 題解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!