Подсчитайте символы, превратите их в шифр

9

Проблема:

Вы должны сделать программу, которая делает следующее:

  • берет большую строку строчных букв и подсчитывает все вхождения каждой буквы.
  • затем вы размещаете буквы по порядку от наибольшего до наименьшего числа случаев.
  • затем вы берете этот список и превращаете его в кодировщик / декодер для текста.
  • затем кодирует текст с этим шифром.

Сложно понять? Смотрите этот пример:

Пример:

Введите текст:

Lorem Ipsum Dolor Sit Amet, Concetetur 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. Вестибюль отравляет язвы магны и фринджиллы. 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, 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 в. Integer Porta vestibulum NISL, et feugiat tortor tincidunt vel. Энейский Дигниссим Элефенд Фаучибус. Morbi nec neque vel ante pulvinar mollis eu in ipsum.

Преобразовать в нижний регистр

Количество символов (на одну букву. Пробелы и знаки препинания игнорируются):

[(«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 edh Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf ujr imepurh pls. Я думаю, что я буду знать, что я делаю. 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. Paidlmmjf 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) за создание расшифровщика (не копируйте список расшифровок, делайте это с нуля)
  • Это поэтому выигрывает самый короткий код!
  • Радоваться, веселиться!
Доктор
источник
Сколько очков за расшифровщик?
Цифровая травма
Это забавная задача, но метод шифрования заставил бы криптографа плакать. Это не только шифр с одной подстановкой, но он обладает смелостью для введения узнаваемого и эксплуатируемого смещения: чем чаще используется шифротекстовая буква при использовании зашифрованного языка, тем более вероятно, что открытый текст находится в начале алфавита. Это Цезарь Цезарь. ;-)
Джонатан Ван Матр
@ Идея замечательная, но вы допустили одну маленькую ошибку ... зашифрованный текст должен начинаться с соответствующих зашифрованных букв в соответствии с вашим алгоритмом! :) Первое предложение начинается с M сейчас, второе предложение с P и так далее ...
WallyWest
@DigitalTrauma - скажем, 30 очков за расшифровщик
TheDoctor
Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch? ЭТО НЕВОЗМОЖНО! Для этого вам понадобится ключ (ваш «список расшифровки» или «таблица поиска»). Просто взять зашифрованный текст и ожидать, что кто-нибудь предоставит расшифровщик, который преобразует его обратно в открытый текст без использования какого-либо ключа, как если бы вы просили нас отправить вопрос в StackOverflow без ввода букв или цифр. Теория информации уже говорит нам, что вы не можете получить информацию из ниоткуда ... поэтому вашему шифру замещения нужна эта таблица поиска (она же ключ).
e-суши

Ответы:

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 frhlh fehlh Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf ujr imepurh pls. Я думаю, что я буду иметь дело с другими людьми. 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. Paidlmmjf 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.

Говард
источник
Черт возьми! это всегда побеждает!
TheDoctor
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
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 ФРХ edlh, svpflshlhjg eurqrfsrpn lmrh.Njps грипп СЖР а prfr ljrfdvu qlmmlphlfbjl эс грипп 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 ФРХ edlh feqrlp.Fjfsl tesrmrfrf Ured hjgqrf, пожалуйста mvivghrf СЖР imepurh pls.Vlfhrijmjd эс jgpe JH mesjf svddvuv fvmmrsrhjurp пожалуйста пвп vlmrh.Njmme sjgfjf jgpe FLD, а hrpsrujph FLD dvmlfhrl VLM. Njmmed tgrpnrmme ephl LJ uvmvg irilpujd, qvfjlgl resjmrf pjps mesrpre.Slu эс 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. "

Правила замены были сгенерированы следующим образом 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"}

DavidC
источник
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);
        }
    }
}
PauloHDSousa
источник
Не включайте входную строку в число символов
TheDoctor
Вы даже запускали это? Выход: e93i89s71u65l61t59n56a49r47o37c34m31d22p20v15q12b11g10f9h3j1k0w0x0y0z0. И это даже близко не подходит к проблеме.
RobIII
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 edh Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf ujr imepurh pls. Я думаю, что я буду знать, что я делаю. 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. Paidlmmjf 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

ввод в с:

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

но поскольку (если я правильно понимаю) я не могу повторно использовать «я» и «м», я буду играть в гольф без него. Код выше имеет два дополнительных CR, вставленных для удобства чтения, которые не учитывались при подсчете символов.

blabla999
источник
0

Clojure, 135

(Предполагая, что входной текст содержится в переменной 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])

Ожидает, что входная строка будет передана через командную строку. (количество символов уменьшается до 122, если входная строка была волшебным образом вставлена ​​в переменную "s")

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

Ouput

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 edh Fjfsl tesrmrfrf ured hjgqrf, pls mvivghrf ujr imepurh pls. Я думаю, что я буду знать, что я делаю. 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. Paidlmmjf 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.

camelthemammel
источник
Да, я сделал все это в 20 строках Python, но это намного дольше, чем у вас
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

.. вход пропущен ..

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 edh Fjfsl te srmrfrf ured hjgqrf, pls mvivghrf ujr Imepurh pls. Вдохновение, я, я, я, я, я, я, я, я, я, я, моя женщина, я не знаю, что ты делаешь? 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. Paidlmmjf 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буквальном смысле?

user2846289
источник
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