문자를 세어 암호로 바꾸십시오.


9

문제:

다음을 수행하는 프로그램을 만들어야합니다.

  • 큰 소문자 텍스트 문자열을 사용하고 각 문자의 모든 발생 횟수를 계산합니다.
  • 그런 다음 가장 큰 것부터 가장 적은 것까지 순서대로 문자를 넣습니다.
  • 그런 다음 해당 목록을 가져와 텍스트의 인코더 / 디코더로 바꿉니다.
  • 그런 다음 해당 암호로 텍스트를 인코딩합니다.

이해하기 어려운가요? 이 예제를보십시오 :

예:

입력 텍스트 :

Lorem ipsum의 dolor는 amet, conditetur adipiscing elit에 앉습니다. nisi euismod pellentesque acimed enim의 Nunc sed dui. Nullam auctor justo quis diam faucibus, eu fringilla est porttitor입니다. Pellentesque vel pharetra nisl. Vestibulum congue ultrices 마그나는 프린지. Quisque porttitor, risus suscipit pellentesque tristique, orci lorem accumsan nisi, scelerisque viverra turpis metus는 아마 사파이어를 앉습니다. Fusce facilisis diam turpis, nec lobortis dui blandit nec. Vestibulum ac urna ut lacus commodo sollicitudin nec 비 velit. Tinlladunt sem molestie vel에서 Nulla cursus urna sem. Nullam fringilla ante eu dolor bibendum, posuere iaculis nunc lacinia. Sed ac pretium est, vel scelerisque nisl. Phasellus lobortis dolor sodales sapien mollis hendrerit. 정수 scelerisque tempor tellus, viverra varius neque mattis에 있습니다. 정수 porta vestibulum nisl, et feugiat tortor tincidunt vel. Aenean dignissim eleifend faucibus. ipsum에있는 Morbi nec nevel 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

파이썬 사전 :

{'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 독감 UJR EH PRFR ljrfdvu qlmmlphlfbjl es 독감 lprd. jmshej ojshv ojfhv bjrf는 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 EPLl Lj Uvmvg Irilpujd, qvfjlgl resjmrf pjps mesrpre. 솔 류스 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. 알 플렙 urnprffrd lmlrtlpu tejsrijf. MVGIR pls plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd. '

나는 파이썬을 좋아한다!

규칙 :

  • 프로그램은 문자열을 받아 출력합니다.
  • 무언가를하기 전에 모든 입력을 소문자로 변환
  • 나는 당신이리스트 정렬을 어떻게하는지 신경 쓰지 않고 소문자 만 셉니다
  • 암호 해독기를 만들기위한 보너스 포인트 (-30) (암호 해독 목록을 복사하지 않고 처음부터 다시 수행)
  • 이것은 가장 짧은 코드가 승리합니다!
  • 즐기세요!

해독기에 몇 점이 있습니까?
Digital Trauma

이것은 재미있는 도전이지만, 여기에서 암호화 방법을 사용하면 암호 전문가가 울 것입니다. 단일 치환 암호 일뿐만 아니라, 인식 가능하고 악용 가능한 편향을 도입하는 대담성을 가지고 있습니다. 암호문이 암호화 된 언어를 사용하는 경우가 많을수록 평문이 알파벳의 시작 부분에있을 가능성이 높습니다. 시저의 시저에서 나옵니다. ;-)
Jonathan Van Matre 2019

@TheDoctor 좋은 생각이지만 약간의 오류가 있습니다 ... 암호화 된 텍스트는 알고리즘에 따라 각각의 암호 문자로 시작해야합니다! :) 첫 번째 문장은 지금 M으로 시작하고 두 번째 문장은 P 등으로 시작합니다.
WallyWest

@DigitalTrauma-암호 해독기 30 점을 말합시다
TheDoctor

Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch? 불가능하다! 그렇게하려면 키 (“암호 해독 목록”, 즉“조회 테이블”)가 있어야합니다. 암호를 입력하고 키를 사용하지 않고 암호를 일반 텍스트로 다시 변환하는 암호 해독기를 제공 할 것을 기대하는 것은 문자 나 숫자를 입력하지 않고 StackOverflow에 질문을 게시하도록 요청하는 것과 같습니다. 정보 이론은 이미 우리가 아무데도 정보를 얻을 수 없다는 것을 알려줍니다. 따라서 대체 암호에는 해당 조회 테이블 (일명 키)이 필요합니다.
e-sushi

답변:


3

GolfScript, 39 자

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

테스트를위한 온라인 버전 . 입력 문자열에서 여러 문자의 수가 같은 경우 정렬이 정의되지 않습니다.

출력 예

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. NJPS 독감 UJR EH PRFR ljrfdvu qlmmlphlfbjl es 독감 lprd. jmshej ojshv ojfhv bjrf는 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, 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 EPLl Lj Uvmvg Irilpujd, qvfjlgl resjmrf pjps mesrpre. 솔 류스 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. 알 플렙 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

매스 매 티카 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 ]]

tLorem ipsum 텍스트 라고 가정 합니다.

f[t]

"Lvgld rqfjd uvmvg FRH edlh, svpflshlhjg eurqrfsrpn lmrh.Njps 독감 ujr 어 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, pls는 mvivghrf ujr imepurh pls.Vlfhrijmjd ES jgpe JH mesjf svddvuv fvmmrsrhjurp pls는 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 alpuglgvhlflghlggrghlflghlghlggrghlflghlggrghlqlghlggrghlggrggrghlggrggrghlghlggrghlfgrghlflghlghlggrghlfgrghlflghlggrggrghlghlqgrj hlgjhllh 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"}


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

당신은 이것을 실행 했습니까 ? 출력 : 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 독감 UJR EH PRFR ljrfdvu qlmmlphlfbjl es 독감 lprd. jmshej ojshv ojfhv bjrf는 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 EPLl Lj Uvmvg Irilpujd, qvfjlgl resjmrf pjps mesrpre. 솔 류스 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. 알 플렙 urnprffrd lmlrtlpu tejsrijf. MVGIR pls plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd.


0

스몰 토크, 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이 삽입되었으며 문자 수에는 포함되지 않았습니다.


0

클로저, 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

파이썬 2.7 (147)

가장 짧은 코드는 아니지만 파이썬이 아직 표현되지 않았고 "파이썬을 좋아합니다!" 문제 설정에서 여기에갑니다

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 독감 UJR EH PRFR ljrfdvu qlmmlphlfbjl es 독감 lprd. jmshej ojshv ojfhv bjrf는 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 EPLl Lj Uvmvg Irilpujd, qvfjlgl resjmrf pjps mesrpre. 솔 류스 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. 알 플렙 urnprffrd lmlrtlpu tejsrijf. MVGIR pls plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd.


그래, 나는 20 줄의 파이썬에서 모든 것을했지만, 당신보다 길다
TheDoctor

0

펄, 84

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

.

펄 암호

.. 입력을 건너 ped ..

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. NJPS 독감 UJR EH PRFR LJ rfdvu qlmmlphlfbjl es 독감 lprd. jmsh ejshvg ojfhv bjrf는 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 dvdvuv fvmmrsrhjurp pls pvp klmrh. Njmme sjgfjf jgpe fld, eh hrpsrujph fld dvmlf hrl klm. NJMmed Tgrpnrmme EPLl Lj Uvmvg Irilpujd, qvfjlgl resjmrf pjps mesrpre. 솔 류스 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에 해독 aabbba? 또는 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.