计算字符,将它们转换为密码


9

问题:

您必须制作一个执行以下操作的程序:

  • 接受一串大写的小写文本,并计算每个字母的所有出现次数。
  • 然后按字母从高到低的顺序排列。
  • 然后您将该列表转换为文本的编码器/解码器。
  • 然后使用该密码对文本进行编码。

很难理解?请参阅以下示例:

例:

输入文本:

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)(不能复制解密列表,请从头开始
  • 这是 ,因此最短的代码获胜!
  • 玩得开心!

一个解密器要多少分?
Digital Trauma

这是一个有趣的挑战,但是这里的加密方法会使密码学家哭泣。它不仅是单替代密码,而且还大胆地引入了可识别和可利用的偏差:密文字母在使用加密语言时越常见,明文就越有可能位于字母表的开头。它超出了凯撒的凯撒。;-)
Jonathan Van Matre 2014年

@TheDoctor很棒的主意,但是您犯了一个小错误……根据您的算法,密文应该以相应的密文字母开头!:)第一个句子现在以M开头,第二个句子以P开头,依此类推...
WallyWest 2014年

@DigitalTrauma-假设解密者获得30分
TheDoctor 2014年

Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch这不可能!您需要具有密钥(您的“解密列表”或“查找表”)才能做到这一点。只是获取一个密文,并期望任何人提供一个解密器,无需使用任何密钥即可将其转换回纯文本,就好像您要我们在不键入任何字母或数字的情况下向StackOverflow发布问题一样。信息理论已经告诉我们,您无法从任何地方获得信息……因此,替换密码需要该查找表(也称为密钥)。
e-sushi

Answers:


3

GolfScript,39个字符

:I{97,26,{97+}%{[.32-]I\-,}$+'{|}~'+=}%

在线版本进行测试。请注意,如果多个字符在输入字符串中具有相同的计数,则未定义排序。

输出示例

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 wlm qaeglhge prfm。Vlfhrijmjd svpnjl jmhgrslf denpe e tgrpnrmme。Qjrfbjl qvghhrhvg,grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl,vgsr mvgld essjdfep prfr,fslmlgrfbjl wrwlgge hjgqrf dlhjf frh edlh feqrlp。Fjfsl tesrmrfrf ured hjgqrf,请mvivghrf ujr imepurh请。Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp pls pvp wlmrh。Njmme sjgfjf jgpe fld,eh hrpsrujph fld dvmlfhrl wlm。Njmmed tgrpnrmme ephl lj uvmvg irilpujd,qvfjlgl resjmrf pjps mesrpre。Slu es qglhrjd lfh,wlm fslmlgrfbjl prfm。Paeflmmjf mvivghrf uvmvg fvuemlf feqrlp dvmmrf alpuglgrh。Iphlnlg fslmlgrfbjl hldqvg hlmmjf,wrwlgge wegrjf plbjl dehhrf rp。Iphlnlg qvghe wlfhrijmjd prfm,lh tljnreh hvghvg hrpsrujph wlm。Alplep urnprffrd lmlrtlpu tejsrijf。Mvgir pls plbjl wlm ephl qjmwrpeg dvmmrf lj rp rqfjd。


该死的golfscript!它总是赢!
TheDoctor 2014年

3

Bash / coreutils,91个字符

tr a-z `echo {a..z} $1|fold -w1|grep '[a-z]'|sort|uniq -c|sort -rn|awk '{printf $2}'`<<<$1

另存为cipher.sh,chmod + x并运行:

$ ./cipher.sh "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sed dui at nisi euismod pellentesque ac sed enim. Nullam auctor justo quis diam faucibus, eu 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 sit amet sapien. Fusce facilisis diam turpis, nec lobortis dui blandit nec. Vestibulum ac urna ut lacus commodo sollicitudin nec non velit. Nulla cursus urna sem, at tincidunt sem molestie vel. Nullam fringilla ante eu dolor bibendum, posuere iaculis nunc lacinia. Sed ac pretium est, vel scelerisque nisl. Phasellus lobortis dolor sodales sapien mollis hendrerit. Integer scelerisque tempor tellus, viverra varius neque mattis in. Integer porta vestibulum nisl, et feugiat tortor tincidunt vel. Aenean dignissim eleifend faucibus. Morbi nec neque vel ante pulvinar mollis eu in ipsum."
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 jlm qaeglhge prfm. Vlfhrijmjd svpnjl jmhgrslf denpe e tgrpnrmme. Qjrfbjl qvghhrhvg, grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl, vgsr mvgld essjdfep prfr, fslmlgrfbjl jrjlgge hjgqrf dlhjf frh edlh feqrlp. Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf ujr imepurh pls. Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp pls pvp jlmrh. Njmme sjgfjf jgpe fld, eh hrpsrujph fld dvmlfhrl jlm. Njmmed tgrpnrmme ephl lj uvmvg irilpujd, qvfjlgl resjmrf pjps mesrpre. Slu es qglhrjd lfh, jlm fslmlgrfbjl prfm. Paeflmmjf mvivghrf uvmvg fvuemlf feqrlp dvmmrf alpuglgrh. Iphlnlg fslmlgrfbjl hldqvg hlmmjf, jrjlgge jegrjf plbjl dehhrf rp. Iphlnlg qvghe jlfhrijmjd prfm, lh tljnreh hvghvg hrpsrujph jlm. Alplep urnprffrd lmlrtlpu tejsrijf. Mvgir pls plbjl jlm ephl qjmjrpeg dvmmrf lj rp rqfjd.
$ 

2

红宝石, 104 92 91个字符

@Chron节省了很多字符

f=->(s){m=[*?a..?z];l=m.map{|x|[-s.downcase.count(x),x]};s.tr(m*'',l.sort.transpose[1]*'')}

在线版本在这里。如另一个答案中所述,未定义具有相同计数的字符的排序。使用输入“ asdf”,到目前为止,每个答案都有另一个输出。

换句话说:当输入包含整个字母且每个字母具有唯一计数时,所有答案都具有相同的行为(因此表示可解码的编码)。


一些小的改进:("a".."z").to_a可以[*?a..?z]m.join可以m*''并且def f(s)...end可以f=->s{...}
Paul Prestidge 2014年

1

Mathematica 171

f@m_:=StringReplace[m,Thread[(CharacterRange["a",
FromCharacterCode[96+Length@(l=Reverse@SortBy[Tally[Select[Characters@m,
(LetterQ@#\[And]LowerCaseQ@#)&]],Last][[All,1]])]])->l ]]

假设t是Lorem ipsum文本。

f[t]

“Lvgld rqfjd uvmvg FRH edlh,svpflshlhjg eurqrfsrpn lmrh.Njps流感革命青年诶PRFR ljrfdvu qlmmlphlfbjl ES流感lprd.Njmmed ejshvg ojfhv bjrf ured tejsrijf,LJ tgrpnrmme LFH qvghhrhvg.Plmmlphlfbjl VLM qaeglhge prfm.Vlfhrijmjd svpnjl jmhgrslf denpeētgrpnrmme.Qjrfbjl qvghhrhvg,grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl,vgsr mvgld essjdfep PRFR,fslmlgrfbjl vrvlgge hjgqrf dlhjf FRH edlh feqrlp.Fjfsl tesrmrfrf ured hjgqrf,请mvivghrf革命青年imepurh pls.Vlfhrijmjd ES jgpe JH mesjf svddvuv fvmmrsrhjurp请PVP vlmrh.Njmme sjgfjf jgpe FLD,诶hrpsrujph FLD dvmlfhrl VLM。 Njmmed tgrpnrmme ephl LJ uvmvg irilpujd,qvfjlgl resjmrf pjps mesrpre.Slu ES qglhrjd LFH,VLM fslmlgrfbjl prfm.Paeflmmjf mvivghrf uvmvg fvuemlf feqrlp dvmmrf alpuglgrh.Iphlnlg fslmlgrfbjl hldqvg hlmmjf,vrvlgge vegrjf plbjl dehhrf rp.Iphlnlg qvghe vlfhrijmjd prfm,lh tljnreh hvghvg hrpsrujphvlm。Alplepurnprffrd lmlrtlputejsrijf。Mvgirpls plbjl vlm ephl qjmvrpeg dvmmrf lj rp rqfjd。

生成的替换规则Thread…-> l是:

{“ a”->“ e”,“ b”->“ i”,“ c”->“ s”,“ d”->“ u”,“ e”->“ l”,“ f”- >“ t”,“ g”->“ n”,“ h”->“ a”,“ i”->“ r”,“ j”->“ o”,“ k”->“ c”, “ l”->“ m”,“ m”->“ d”,“ n”->“ p”,“ o”->“ v”,“ p”->“ q”,“ q”-> “ b”,“ r”->“ g”,“ s”->“ f”,“ t”->“ h”,“ u”->“ j”}


1

K,43

{x^(b!b^26$>#:'=a@&(a:_x)in b:"c"$97+!26)x}

1

C#386

using System.Collections.Generic;using System.Linq;namespace N{class P{static void Main(string[]a){char[] f="abcdefghijklmnopqrstuvwxyz".ToCharArray();Dictionary<char,int>l=new Dictionary<char,int>();foreach (char c in f) l.Add(c, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sed dui at nisi euismod pellentesque ac sed enim. Nullam auctor justo quis diam faucibus, eu 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 sit amet sapien. Fusce facilisis diam turpis, nec lobortis dui blandit nec. Vestibulum ac urna ut lacus commodo sollicitudin nec non velit. Nulla cursus urna sem, at tincidunt sem molestie vel. Nullam fringilla ante eu dolor bibendum, posuere iaculis nunc lacinia. Sed ac pretium est, vel scelerisque nisl. Phasellus lobortis dolor sodales sapien mollis hendrerit. Integer scelerisque tempor tellus, viverra varius neque mattis in. Integer porta vestibulum nisl, et feugiat tortor tincidunt vel. Aenean dignissim eleifend faucibus. Morbi nec neque vel ante pulvinar mollis eu in ipsum.".ToLower().Trim().Count(v => v == c));foreach (KeyValuePair<char, int> i in l.OrderByDescending(p => p.Value))System.Console.Write(i.Key +""+i.Value);}}}

未压缩。

using System.Collections.Generic;
using System.Linq;
namespace N {
    class P {
        static void Main(string[]a){
            char[] f="abcdefghijklmnopqrstuvwxyz".ToCharArray();
            Dictionary<char,int>l=new Dictionary<char,int>();
            foreach (char c in f) 
                l.Add(c, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sed dui at nisi euismod pellentesque ac sed enim. Nullam auctor justo quis diam faucibus, eu 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 sit amet sapien. Fusce facilisis diam turpis, nec lobortis dui blandit nec. Vestibulum ac urna ut lacus commodo sollicitudin nec non velit. Nulla cursus urna sem, at tincidunt sem molestie vel. Nullam fringilla ante eu dolor bibendum, posuere iaculis nunc lacinia. Sed ac pretium est, vel scelerisque nisl. Phasellus lobortis dolor sodales sapien mollis hendrerit. Integer scelerisque tempor tellus, viverra varius neque mattis in. Integer porta vestibulum nisl, et feugiat tortor tincidunt vel. Aenean dignissim eleifend faucibus. Morbi nec neque vel ante pulvinar mollis eu in ipsum.".ToLower().Trim().Count(v => v == c));
            foreach (KeyValuePair<char, int> i in l.OrderByDescending(p => p.Value))
                System.Console.Write(i.Key +""+i.Value);
        }
    }
}

不要在您的字符数中包含输入字符串
TheDoctor 2014年

你什至了吗?输出:e93i89s71u65l61t59n56a49r47o37c34m31d22p20v15q12b11g10f9h3j1k0w0x0y0z0。而且它甚至还不接近挑战。
罗布三世

0

PHP 151

(设定short_open_tag = On

<?$c=array_slice(count_chars(strtolower($s=$argv[1])),97,26,1);arsort($c);echo strtr($s,array_combine(range('a','z'),array_map('chr',array_keys($c))));

这期望文本作为脚本的第一个参数。像这样:

php cypher.php "Lorem ipsum [...]"

0

R,137

l=letters;s=strsplit(readline(),"")[[1]];g=grep("[a-z]",s);s[g]=names(sort(table(factor(tolower(s),l)),d=T))[match(s[g],l)];cat(s,sep="")

输出(基于相关示例):

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。


0

Smalltalk,138

在s中输入:

m:=(s select:[:c|cisLetter])asLowercase asBag sortedCounts map:#value.
i:=($ato:$z).m:=m,(i copyWithoutAll:m).
s copyTransliterating:i to:m

解码器是:

s copyTransliterating:m to:i

但是由于(如果我理解正确)我可能不会重复使用“ i”和“ m”,因此我会在没有它的情况下打高尔夫球。上面的代码插入了两个附加的CR,以提高可读性,这些字符未计入char计数中。


0

Clojure,135岁

(假设输入文本包含在var中s

(let[a(map char(range 97 123))m(->> s .toLowerCase frequencies(sort-by val >)keys(filter(set a))(zipmap a))](apply str(map #(m % %)s)))

0

Python 2.7(147)

根本不是最短的代码,但由于尚未表示Python,而且正如我所见,“我爱python!” 在问题设置中,我走了,

import sys;s=sys.argv[1];a=map(chr,range(97,123));print"".join([sorted(a,key=lambda x:-s.lower().count(x))[ord(c)-97]if c in a else c for c in s])

期望通过命令行传递输入字符串。(如果将输入字符串神奇地插入变量“ s” ,则字符数减少为122

a=map(chr,range(97,123));print"".join([sorted(a,key=lambda x:-s.lower().count(x))[ord(c)-97]if c in a else c for c in s])

乌普特

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。


是的,我在20行python中完成了所有操作,但是比您的要长得多
TheDoctor 2014年

0

Perl,84岁

$c{$_}++for lc($_=<>)=~/./g;@h{a..z}=sort{$c{$b}-$c{$a}}a..z;s/[a-z]/$h{$&}/ge;print

perl cipher.pl

..输入已跳过..

Lvgld rqfjd uvmvg frh edlh,svpflshlhjg eurqrfsrpn lmrh。Njps flu ujr eh prfr lj rfdvu qlmmlphlfbjl es flu lprd。Njmmed ejshvg ojfhv bjrf ured tejsrijf,lj tgrpn rmme lfh qvghhrhvg。Plmmlphlfbjl klm qaeglhge prfm。Vlfhrijmjd svpnjl jmhgrslf d epe e tgrpnrmme。Qjrfbjl qvghhrhvg,grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl,vgsr mvgld essjdfep prfr,fslmlgrfbjl krklgge hjgqrf dlhjf frh edlh feqrlp。Fjfsl te srmrfrf ured hjgqrf,pl mvivghrf ujr imepurh pls。vlfhrijmjd es jgpe jh mesjf s vddvuv fvmmrsrhjurp pls pvp klmrh。Njmme sjgfjf jgpe fld,eh hrpsrujph fld dvmlf hrl klm。Njmmed tgrpnrmme ephl lj uvmvg irilpujd,qvfjlgl resjmrf pjps mesrpre。Slu es qglhrjd lfh,klm fslmlgrfbjl prfm。Paeflmmjf mvivghrf uvmvg fvuemlf feqrl p dvmmrf alpuglgrh。Iphlnlg fslmlgrfbjl hldqvg hlmmjf,krklgge kegrjf plbjl dehh rf rp。Iphlnlg qvghe klfhrijmjd prfm,lh tljnreh hvghvg hrpsrujph klm。Alplep ur nprffrd lmlrtlpu tejsrijf。Mvgir pls plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd。

PS是关于解密的笑话吗?还是我应该证明30英镑的奖金是不可能的?是aab破译aab还是bba?或babaca,是字面上的cacaba还是ababcb原文babaca


0

C#– 393字节

string e(string i){char[] f="abcdefghijklmnopqrstuvwxyz".ToCharArray();Dictionary<char,int>l=new Dictionary<char,int>();foreach (char c in f) l.Add(c, i.ToLower().Count(v => v == c));var w = (l.OrderByDescending(p => p.Value)).ToDictionary(q=>q.Key, y=>y.Value);var z = w.Keys.ToList();string r = "";foreach(char c in i) {if((int)c <=97 || (int)c>=122)r+=c;else r += z[((int)c-97)];}return r;}

@PauloHDSousa答案的扩展版本…


为什么答案中有很多多余的空格?
Qwertiy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.