Zähle die Zeichen und verwandle sie in eine Chiffre

9

Problem:

Sie müssen ein Programm erstellen, das Folgendes ausführt:

  • Nimmt eine große Folge von Kleinbuchstaben und zählt alle Vorkommen jedes Buchstabens.
  • Dann ordnen Sie die Buchstaben in der Reihenfolge vom größten zum kleinsten Vorkommen.
  • Dann nehmen Sie diese Liste und verwandeln sie in einen Codierer / Decodierer für den Text.
  • codiert dann den Text mit dieser Chiffre.

Schwer zu verstehen? Siehe dieses Beispiel:

Beispiel:

Eingabetext:

Lorem ipsum dolor sitzen amet, consectetur adipiscing elit. Nunc sed dui bei 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, bei 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.

In Kleinbuchstaben konvertieren.

Zeichenanzahl (pro Buchstabe. Leerzeichen und Interpunktion ignoriert):

[('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)]

Bestellte Zeichenanzahl:

[('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)]

Erstellen Sie dann eine Nachschlagetabelle mit den ursprünglichen und sortierten Listen:

abcdefghijklmnopqrstuvwxyz
||||||||||||||||||||||||||
eisultnarocmdpvqbgfhjkwxyz

Python-Wörterbuch:

{'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'}

Und jetzt codieren Sie den Originaltext mit dieser Nachschlagetabelle:

'Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps Grippe ujr eh prfr ljrfdvu qlmmlphlfbjl es Grippe 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, pls mvivghrf ujr imepurh pls. 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. '

Ich liebe Python!

Regeln:

  • Ihr Programm akzeptiert eine Zeichenfolge und gibt eine aus.
  • Konvertieren Sie alle Eingaben in Kleinbuchstaben, bevor Sie etwas tun
  • Es ist mir egal, wie Sie die Liste sortieren, sondern nur Kleinbuchstaben zählen
  • Bonuspunkte (-30) für die Erstellung eines Entschlüsselers (kein Kopieren der Entschlüsselungsliste, machen Sie es von Grund auf neu
  • Dies ist , also gewinnt der kürzeste Code!
  • Habe Spaß!
Der Doktor
quelle
Wie viele Punkte für einen Entschlüsseler?
Digitales Trauma
Dies ist eine lustige Herausforderung, aber die Verschlüsselungsmethode hier würde einen Kryptographen zum Weinen bringen. Es handelt sich nicht nur um eine Einzelersatz-Chiffre, sondern es hat auch die Kühnheit, eine erkennbare und ausnutzbare Tendenz einzuführen: Je häufiger ein Chiffretext-Buchstabe in der verschlüsselten Sprache verwendet wird, desto wahrscheinlicher liegt der Klartext am Anfang des Alphabets. Es übertrifft Caesars Caesar. ;-)
Jonathan Van Matre
@TheDoctor tolle Idee, aber Sie haben einen kleinen Fehler gemacht ... der verschlüsselte Text sollte mit den entsprechenden verschlüsselten Buchstaben gemäß Ihrem Algorithmus beginnen! :) Der erste Satz beginnt jetzt mit M, der zweite Satz mit P und so weiter ...
WallyWest
@ DigitalTrauma - sagen wir 30 Punkte für einen Entschlüsseler
TheDoctor
Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch? DAS IST UNMÖGLICH! Dazu benötigen Sie den Schlüssel (Ihre „Entschlüsselungsliste“ oder „Nachschlagetabelle“). Nur einen Chiffretext zu nehmen und zu erwarten, dass jemand einen Entschlüsseler bereitstellt, der ihn ohne Verwendung eines Schlüssels wieder in Klartext umwandelt, ist so, als würden Sie uns bitten, eine Frage an StackOverflow zu senden, ohne Buchstaben oder Zahlen einzugeben. Die Informationstheorie sagt uns bereits, dass Sie keine Informationen aus dem Nichts erhalten können. Ihre Substitutionsverschlüsselung benötigt also diese Nachschlagetabelle (auch bekannt als Schlüssel).
E-Sushi

Antworten:

3

GolfScript, 39 Zeichen

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

Online-Version zum Testen. Beachten Sie, dass die Sortierung nicht definiert ist, wenn mehrere Zeichen dieselbe Anzahl in der Eingabezeichenfolge haben.

Beispielausgabe

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps Grippe ujr eh prfr ljrfdvu qlmmlphlfbjl es Grippe 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 feqrp. Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf ujr imepurh pls. 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.

Howard
quelle
Verdammtes Golfskript! es gewinnt immer!
TheDoctor
3

Bash / Coreutils, 91 Zeichen

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

Speichern unter cipher.sh, chmod + x it und ausführen:

$ ./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.
$ 
Digitales Trauma
quelle
2

Rubin, 104 92 91 Zeichen

Dank @Chron wurden einige Zeichen gespeichert

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

Online-Version hier. Das Sortieren von Zeichen mit derselben Anzahl ist nicht definiert, wie in einer anderen Antwort erwähnt. Mit der Eingabe "asdf" hat jede Antwort bisher eine andere Ausgabe.

Mit anderen Worten: Alle Antworten haben das gleiche Verhalten (stellen also eine decodierbare Codierung dar), wenn die Eingabe das gesamte Alphabet enthält, wobei jeder Buchstabe eine eindeutige Anzahl hat.

David Herrmann
quelle
Ein paar kleine Verbesserungen: ("a".."z").to_akönnen sein [*?a..?z], m.joinkönnen sein m*''und def f(s)...endkönnen seinf=->s{...}
Paul Prestidge
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 ]]

Angenommen, es thandelt sich um den Text von Lorem ipsum.

f[t]

„Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh.Njps Grippe UJR eh prfr ljrfdvu qlmmlphlfbjl es Grippe lprd.Njmmed ejshvg ojfhv bjrf ured tejsrijf, lj tgrpnrmme lfh qvghhrhvg.Plmmlphlfbjl vlm qaeglhge prfm.Vlfhrijmjd svpnjl jmhgrslf denpe e tgrpnrmme.Qjrfbjl qvghhrhvg, grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl, vgsr mvgld essjdfep prfr, fslmlgrfbjl vrvlgge hjgqrf dlhjf frh edlh feqrlp.Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf UJR imepurh pls.Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp pls pvp vlmrh.Njmme sjgfjf jgpe FLD, eh 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 hrpsrujph vlm.Alplep urnprffrd lmlrtlpu tejsrijf.Mvgir pls plbjl vlm ephl qjmvrpeg dvmmrf lj rp rqfjd. "

Die von generierten Ersetzungsregeln Thread…-> lwaren:

{"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"}

DavidC
quelle
1

K, 43

{x^(b!b^26$>#:'=a@&(a:_x)in b:"c"$97+!26)x}
tmartin
quelle
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);}}}

Unkomprimiert.

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);
        }
    }
}
PauloHDSousa
quelle
Fügen
Hast du selbst laufen das? Ausgabe : e93i89s71u65l61t59n56a49r47o37c34m31d22p20v15q12b11g10f9h3j1k0w0x0y0z0. Und es kommt der Herausforderung nicht einmal nahe.
RobIII
0

PHP, 151

(mit Einstellung 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))));

Dies erwartet den Text als erstes Argument für das Skript. Wie so:

php cypher.php "Lorem ipsum [...]"
Anständiger Dabbler
quelle
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="")

Ausgabe (basierend auf dem fraglichen Beispiel):

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps Grippe ujr eh prfr ljrfdvu qlmmlphlfbjl es Grippe 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, pls mvivghrf ujr imepurh pls. 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.

Sven Hohenstein
quelle
0

Smalltalk, 138

Eingabe in s:

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

Der Decoder ist:

s copyTransliterating:m to:i

aber da ich (wenn ich es richtig verstehe) "i" und "m" nicht wiederverwenden darf, werde ich ohne es Golf spielen. Der obige Code enthält zwei zusätzliche CRs, die zur besseren Lesbarkeit eingefügt wurden und bei der Zeichenanzahl nicht berücksichtigt wurden.

blabla999
quelle
0

Clojure, 135

(Angenommen, der Eingabetext ist in der Variable enthalten 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)))
Daniel Janus
quelle
0

Python 2.7 (147)

Nicht der kürzeste Code überhaupt, aber da Python noch nicht vertreten ist und ich sehe "Ich liebe Python!" in der Problemstellung, hier gehe ich,

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])

Erwartet, dass die Eingabezeichenfolge über die Befehlszeile übergeben wird. (Die Anzahl der Zeichen wird auf 122 reduziert, wenn die Eingabezeichenfolge auf magische Weise in die Variable "s" eingefügt wurde.)

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])

Ausgabe

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps Grippe ujr eh prfr ljrfdvu qlmmlphlfbjl es Grippe 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, pls mvivghrf ujr imepurh pls. 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.

Kamelthemammel
quelle
Ja, ich habe das alles in 20 Zeilen Python gemacht, aber es ist viel länger als deins
TheDoctor
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

.. Eingabe übersprungen ..

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 enpe e tgrpnrmme. Qjrfbjl qvghhrhvg, grfjf fjfsrqrh qlmmlphlfbjl hgrfhrbjl, vgsr mvgld essjdfep prfr, fslmlgrfbjl krklgge hjgqrf dlhjf frh edlh feqrlp Fjfsl te srmrfrf ured hjgqrf, pls 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 War es ein Witz über die Entschlüsselung? Oder sollte ich 30 Bonus beanspruchen, um zu beweisen, dass es unmöglich ist? Wird aabzu aaboder entschlüsselt bba? Oder babacawar es cacabaoder ababcbim Original oder babacaselbst buchstäblich?

user2846289
quelle
0

C # - 393 Bytes

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;}

Die erweiterte Version von @ PauloHDSousas Antwort

Rajesh
quelle
Warum haben Sie viele zusätzliche Leerzeichen in der Antwort?
Qwertiy