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 Code-Golf , also gewinnt der kürzeste Code!
- Habe Spaß!
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).