Isograms
Isograms,也称为 "非模式词",是一个逻辑学术语,指没有重复字母的单词或短语。
等分词可以作为密码中的密钥,因为相同长度的等分词序列可以在符号之间进行简单的一对一映射。
像PATHFINDER
、DUMBWAITER
和BLACKHORSE
这样的10个字母的等值线通常被销售人员使用,这些产品的零售价格通常是协商的,如二手车、珠宝或古董。
例如,使用PATHFINDER
密码,P代表1,A代表2,以此类推。一件售价为1200美元的物品的价格标签也可能带有加密字母FRR
,写在标签的背面或底部。熟悉PATHFINDER
密码的销售人员会知道,该商品的原始成本是500美元。
(来源:维基)
任务
完成这些功能,以便用所提供的等值键对输入的数字/代码进行编码/解码。注意:键是不分大小写的(可以是大写或小写)。
对于输入,你应该接受整数或字符串格式的数字(编码函数),或一个字符串(解码函数)。
将结果作为一个大写的字符串返回。
如果提供的输入和/或键不正确,是空的或丢失的,返回 "键或输入不正确!
例子
500, "pathfinder" --> "frr"
"500", "pathfinder" --> "frr"
"frr", "pathfinder" --> "500"
500, "PATHFIND" --> "不正确的键或输入!"
500, "PATHFINDEE" --> "不正确的键或输入!"
"LOL", "PATHFINDER" --> "不正确的键或输入!"
请看样本测试中的一些更多的例子。
def isogram_encode(input=None, key=None):
try:
assert input and len(key) == len(set(key)) == 10
trans = dict(zip('1234567890', key.upper()))
return ''.join([trans[d] for d in str(input)])
except:
return 'Incorrect key or input!'
def isogram_decode(input=None, key=None):
try:
assert input and len(key) == len(set(key)) == 10
trans = dict(zip(key.upper(), '1234567890'))
return ''.join([trans[c] for c in input.upper()])
except:
return'Incorrect key or input!'
技巧多多!
本文由mdnice多平台发布