Đếm các ký tự, biến chúng thành mật mã


9

Vấn đề:

Bạn phải tạo một chương trình thực hiện như sau:

  • lấy một chuỗi lớn văn bản chữ thường và đếm tất cả các lần xuất hiện của mỗi chữ cái.
  • sau đó bạn đặt các chữ cái theo thứ tự từ lớn nhất đến ít nhất.
  • sau đó bạn lấy danh sách đó và biến nó thành một bộ mã hóa / giải mã cho văn bản.
  • sau đó mã hóa văn bản với mật mã đó.

Khó hiểu? Xem ví dụ này:

Thí dụ:

Nhập ký tự:

Lorem ipsum dolor ngồi amet, consitetur adipiscing elit. Nunc sed dui tại nisi euismod pellentesque ac sed enim. Nullam auctor justo quis diam faucibus, eu fringilla est porttitor. Pellentesque vel pharetra nisl. Vestibulum congue ultrices magna một fringilla. Quisque porttitor, risus suscipit pellentesque tristique, orci lorem accumsan nisi, scelerisque viverra turpis metus sit amet sapien. Fusce preferisis diam turpis, nec lobortis dui blandit nec. Vestibulum ac urna ut lacus Vendo sollicitudin nec non velit. Nulla cursus urna sem, tại 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 TIME Tellus, viverra varius neque mattis in. Integer porta vestibulum nisl, et feugiat traor tincidunt vel. Aenean dignissim eleifend faucibus. Morbi nec neque vel ante pulvinar mollis eu ở ipsum.

Chuyển đổi thành chữ thường.

Số đếm Char (mỗi chữ cái. Dấu cách và dấu chấm câu bị bỏ qua):

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

Số lượng char đặt hàng:

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

Sau đó tạo bảng tra cứu bằng danh sách gốc và được sắp xếp:

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

Từ điển 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'}

Và bây giờ mã hóa văn bản gốc bằng bảng tra cứu này:

'Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps cúm ujr eh prfr ljrfdvu qlmmlphlfbjl es cúm 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, vssr mvgld essjdfep prfr Fjfsl tesrmrfrf ured hjgqrf, xin mvivghrf ujr imepurh xin vui lòng. Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp xin 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 xin plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd. '

Tôi yêu con trăn!

Quy tắc:

  • Chương trình của bạn sẽ chấp nhận một chuỗi và đầu ra một chuỗi.
  • Chuyển đổi tất cả đầu vào thành chữ thường trước khi làm bất cứ điều gì
  • Tôi không quan tâm đến cách bạn sắp xếp danh sách, nhưng chỉ đếm các chữ cái viết thường
  • Điểm thưởng (-30) để tạo bộ giải mã (không sao chép danh sách giải mã, hãy thực hiện từ đầu
  • Đây là , vì vậy đoạn mã ngắn nhất sẽ thắng!
  • Chúc vui vẻ!

Có bao nhiêu điểm cho một bộ giải mã?
Chấn thương kỹ thuật số

Đây là một thử thách thú vị, nhưng phương thức mã hóa ở đây sẽ khiến một nhà mật mã học khóc. Nó không chỉ là một mật mã thay thế đơn lẻ, mà còn có khả năng táo bạo để đưa ra một thiên kiến ​​dễ nhận biết và có thể khai thác: một chữ cái mã hóa phổ biến hơn trong việc sử dụng ngôn ngữ được mã hóa, càng có nhiều khả năng bản rõ nằm gần đầu bảng chữ cái. Nó ra khỏi Caesar. ;-)
Jonathan Van Matre

@TheDoctor ý tưởng tuyệt vời, nhưng bạn đã mắc một lỗi nhỏ ... văn bản được mã hóa phải bắt đầu bằng các chữ cái được mã hóa tương ứng theo thuật toán của bạn! :) Câu đầu tiên bắt đầu bằng M bây giờ, câu thứ hai với P và cứ thế ...
WallyWest

@DigitalTrauma - giả sử 30 điểm cho một bộ giải mã
TheDoctor

Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch? KHÔNG THỂ NÀO! Bạn sẽ cần phải có khóa (danh sách giải mã trên máy tính của bạn, hay còn gọi là bảng tra cứu trên mạng) để có thể làm điều đó. Chỉ cần lấy một bản mã và mong đợi bất kỳ ai cung cấp một bộ giải mã biến nó trở lại thành bản rõ mà không sử dụng bất kỳ khóa nào giống như bạn đang yêu cầu chúng tôi gửi câu hỏi lên StackOverflow mà không cần gõ bất kỳ chữ cái hoặc số nào. Lý thuyết thông tin đã cho chúng tôi biết rằng bạn không thể lấy thông tin từ nơi nào vì vậy mật mã thay thế của bạn cần bảng tra cứu đó (còn gọi là khóa).
e-sushi

Câu trả lời:


3

GolfScript, 39 ký tự

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

Phiên bản trực tuyến để thử nghiệm. Lưu ý rằng việc sắp xếp không được xác định nếu nhiều ký tự có cùng số đếm trong chuỗi đầu vào.

Ví dụ đầu ra

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps cúm ujr eh prfr ljrfdvu qlmmlphlfbjl es cúm lprd. Njmmed ejshvg ojfhv bjrf ured tejsrijf, lj tgrpnrmme lfh qvghhrhvg. Plmmlphlfbjl wlm qaeglhge prfm. Vlfhrijmjd svpnjl jmhgrslf denpe e tgrpnrmme. Qjrfbjl qvghhrhvg, grfjf fjfrr Fjfsl tesrmrfrf ured hjgqrf, xin mvivghrf ujr imepurh xin vui lòng. Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp xin 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 xin plbjl wlm ephl qjmwrpeg dvmmrf lj rp rqfjd.


Darn golfscript! nó luôn luôn thắng
TheDoctor

3

Bash / coreutils, 91 ký tự

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

Lưu dưới dạng cipher.sh, chmod + x nó và chạy:

$ ./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

Hồng ngọc 104 92 91 ký tự

Đã lưu khá nhiều ký tự nhờ @Chron

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

Phiên bản trực tuyến tại đây. Sắp xếp các ký tự có cùng số lượng không được xác định, như được đề cập trong câu trả lời khác. Với đầu vào "asdf", mỗi câu trả lời có một đầu ra khác.

Nói cách khác: tất cả các câu trả lời có cùng một hành vi (do đó đại diện cho một mã hóa có thể giải mã được) khi đầu vào chứa toàn bộ bảng chữ cái với mỗi chữ cái có một số đếm duy nhất.


Một vài cải tiến nhỏ: ("a".."z").to_acó thể [*?a..?z], m.joincó thể m*''def f(s)...endcó thểf=->s{...}
Paul Prestidge

1

Toán học 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 ]]

Giả sử tlà văn bản Lorem ipsum.

f[t]

"Lvgld rqfjd uvmvg FRH edlh, svpflshlhjg eurqrfsrpn lmrh.Njps cúm ujr eh prfr ljrfdvu qlmmlphlfbjl es cúm 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 xin plbjl vlm ephl qjmvrpeg dvmmrf lj rp

Các quy tắc thay thế được tạo bởi Thread…-> llà:

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

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

Không nén.

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

Không bao gồm chuỗi đầu vào trong số char của bạn
TheDoctor

Bạn thậm chí đã chạy này? Đầu ra : e93i89s71u65l61t59n56a49r47o37c34m31d22p20v15q12b11g10f9h3j1k0w0x0y0z0. Và nó thậm chí không đến gần với thách thức.
RobIII

0

PHP, 151

(có cài đặt 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))));

Điều này hy vọng văn bản là đối số đầu tiên cho kịch bản. Thích như vậy:

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="")

Đầu ra (dựa trên ví dụ trong câu hỏi):

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps cúm ujr eh prfr ljrfdvu qlmmlphlfbjl es cúm 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, vssr mvgld essjdfep prfr Fjfsl tesrmrfrf ured hjgqrf, xin mvivghrf ujr imepurh xin vui lòng. Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp xin 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 xin plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd.


0

Smalltalk, 138

đầu vào trong s:

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

bộ giải mã là:

s copyTransliterating:m to:i

nhưng vì (nếu tôi hiểu chính xác) tôi không thể sử dụng lại "i" và "m", tôi sẽ chơi golf mà không có nó. Mã ở trên có hai CR bổ sung được chèn để dễ đọc, không được đếm trong số char.


0

Clojure, 135

(Giả sử văn bản đầu vào được chứa trong 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

Con trăn 2.7 (147)

Không phải là mã ngắn nhất mà là Python chưa được đại diện và như tôi thấy "Tôi yêu python!" trong phần thiết lập vấn đề, ở đây tôi đi,

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

Dự kiến ​​chuỗi đầu vào sẽ được truyền qua dòng lệnh. (số lượng ký tự được giảm xuống 122 nếu chuỗi đầu vào được chèn một cách kỳ diệu vào biến "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 cúm ujr eh prfr ljrfdvu qlmmlphlfbjl es cúm 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, vssr mvgld essjdfep prfr Fjfsl tesrmrfrf ured hjgqrf, xin mvivghrf ujr imepurh xin vui lòng. Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp xin 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 xin plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd.


Đúng, tôi đã làm tất cả những điều đó trong 20 dòng trăn, nhưng nó dài hơn của bạn
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 crypt.pl

.. đầu vào bị bỏ qua ..

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps cúm ujr eh prfr lj rfdvu qlmmlphlfbjl es cúm 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, vssr mvgld essjdfep prfr Fjfsl te srmrfrf ured hjgqrf, xin mvivghrf ujr imepurh xin. Vlfhrijmjd es jgpe jh mesjf s vddvuv fvmmrsrhjurp xin 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 xin plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd.

PS Có phải là một trò đùa, về giải mã? Hay tôi nên nhận 30 phần thưởng vì đã chứng minh điều đó là không thể? Được aabgiải mã đến aabhay bba? Hoặc babaca, là nó cacabahoặcababcb trong bản gốc, hoặc babacachính nó, theo nghĩa đen?


0

C # - 393 byte

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

Các phiên bản mở rộng của @ câu trả lời PauloHDSousa của ...


Tại sao bạn có rất nhiều khoảng trống trong câu trả lời?
Qwertiy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.