问题:
您必须制作一个执行以下操作的程序:
- 接受一串大写的小写文本,并计算每个字母的所有出现次数。
- 然后按字母从高到低的顺序排列。
- 然后您将该列表转换为文本的编码器/解码器。
- 然后使用该密码对文本进行编码。
很难理解?请参阅以下示例:
例:
输入文本:
Lorem ipsum dolor坐下来,一直保持良好的状态。Nunc euismod pellentesque ac sed enim的Nunc sed dui。Nullam auctor Justo quis diam faucibus,欧盟fringilla est porttitor。Pellentesque vel pharetra nisl。Vestibulum congue ultrices magna a fringilla。Quisque porttitor,risus suscipit pellentesque tristique,orci lorem accumsan nisi,scelerisque viverra turpis metus坐在amet sapien。Fusce facilisis diam turpis,nec lobortis dui blandit nec。不可食用的可口可乐。Nulla cursus urna sem,在tincidunt sem molestie vel。Nullam fringilla ante eu dolor bibendum,posuere iaculis nunc lacinia。Sed ac pretium est,vel celescele nisl。菜豆lobortis dolor sodales sapien mollis hendrerit。整数temportell tempus,维特拉varius neque mattis in。整数portavestibulum nisl,et feugiat tortor tincidunt vel。Aenean dignissim eleifend faucibus。ipsum中的Morbi nec neque vel ante pulvinar mollis eu。
转换为小写。
字符数(每个字母。空格和标点符号被忽略):
[('a',49),('b',11),('c',34),('d',22),('e',93),('f',9),( 'g',10),('h',3),('i',89),('j',1),('k',0),('l',61),('m ',31),('n',56),('o',37),('p',20),('q',12),('r',47),('s', 71),('t',59),('u',65),('v',15),('w',0),('x',0),('y',0) ,('z',0)]
已订购的字符数:
[('e',93),('i',89),('s',71),('u',65),('l',61),('t',59),( 'n',56),('a',49),('r',47),('o',37),('c',34),('m',31),('d ',22),('p',20),('v',15),('q',12),('b',11),('g',10),('f', 9),('h',3),('j',1),('k',0),('w',0),('x',0),('y',0) ,('z',0)]
然后使用原始列表和排序列表创建查找表:
abcdefghijklmnopqrstuvwxyz
||||||||||||||||||||||||||
eisultnarocmdpvqbgfhjkwxyz
Python字典:
{'o': 'v', 'n': 'p', 'm': 'd', 'l': 'm', 'k': 'c', 'j': 'o', 'i': 'r', 'h': 'a', 'g': 'n', 'f': 't', 'e': 'l', 'd': 'u', 'c': 's', 'b': 'i', 'a': 'e', 'z': 'z', 'y': 'y', 'x': 'x', 'w': 'w', 'v': 'k', 'u': 'j', 't': 'h', 's': 'f', 'r': 'g', 'q': 'b', 'p': 'q'}
现在,使用此查询表对原始文本进行编码:
'Lvgld rqfjd uvmvg frh edlh,svpflshlhjg eurqrfsrpn lmrh。Njps flu ujr eh prfr ljrfdvu qlmmlphlfbjl es flu lprd。Njmmed ejshvg ojfhv bjrf ured tejsrijf,lj tgrpnrmme lfh qvghhrhvg。Plmmlphlfbjl klm qaeglhge prfm。Vlfhrijmjd svpnjl jmhgrslf denpe e tgrpnrmme。Qjrfbjl qvghhrhvg,grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl,vgsr mvgld essjdfep prfr,fslmlgrfbjl krklgge hjgqrf dlhjf frh edlh feqrlp。Fjfsl tesrmrfrf ured hjgqrf,请mvivghrf ujr imepurh请。Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp pls pvp klmrh。Njmme sjgfjf jgpe fld,eh hrpsrujph fld dvmlfhrl klm。Njmmed tgrpnrmme ephl lj uvmvg irilpujd,qvfjlgl resjmrf pjps mesrpre。Slu es qglhrjd lfh,klm fslmlgrfbjl prfm。Paeflmmjf mvivghrf uvmvg fvuemlf feqrlp dvmmrf alpuglgrh。Iphlnlg fslmlgrfbjl hldqvg hlmmjf,krklgge kegrjf plbjl dehhrf rp。Iphlnlg qvghe klfhrijmjd prfm,lh tljnreh hvghvg hrpsrujph klm。Alplep urnprffrd lmlrtlpu tejsrijf。Mvgir pls plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd。
我爱蟒蛇!
规则:
- 您的程序将接受一个字符串并输出一个。
- 在执行任何操作之前将所有输入转换为小写
- 我不在乎您如何进行列表排序,只算小写字母
- 制作解密器的加分(-30)(不能复制解密列表,请从头开始
- 这是 代码高尔夫球,因此最短的代码获胜!
- 玩得开心!
Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch?这不可能!您需要具有密钥(您的“解密列表”或“查找表”)才能做到这一点。只是获取一个密文,并期望任何人提供一个解密器,无需使用任何密钥即可将其转换回纯文本,就好像您要我们在不键入任何字母或数字的情况下向StackOverflow发布问题一样。信息理论已经告诉我们,您无法从任何地方获得信息……因此,替换密码需要该查找表(也称为密钥)。