Karakterleri sayın, onları bir şifreye dönüştürün


9

Sorun:

Aşağıdakileri yapan bir program yapmalısınız:

  • büyük bir küçük harf dizesi alır ve her harfin tüm örneklerini sayar.
  • daha sonra harfleri en büyükten en küçük düzeye doğru sıralarsınız.
  • o listeyi alıp metin için bir kodlayıcı / kod çözücüye dönüştürürsünüz.
  • daha sonra metni bu şifre ile kodlar.

Anlaşılması zor? Bu örneğe bakın:

Misal:

Giriş metni:

Lorem ipsum dolor sit amet, seçkin adipiscing elit. Nisi euismod pellentesque ac sed enim şirketinde Nunc sed dui. Nullam auctor justo quis diam faucibus, ab fringilla est porttitor. Pellentesque vel pharetra nisl. Vestibulum congue ultrisleri bir fringilla magna. Quisque porttitor, risus suscipit pellentesque tristique, orci lorem accumsan nisi, scelerisque viverra turpis metus sit amet sapien. Başka yerde sınıflandırılmamış Fusce facilisis diam turpis, başka yerde sınıflandırılmamış lobortis dui blandit. Başka yerde sınıflandırılmamış vestibulum ac urna ut lacus commodo sollicitudin. Nulla cursus urna sem, tincidunt sem molestie vel'de. Nullam fringilla ante ab dolor bibendum, posuere iaculis nunc lacinia. Sed ac pretium est, vel scelerisque nisl. Phasellus lobortis dolor sodales sapien mollis hendrerit. Tam sayı scelerisque tempor tellus, viverra varius neque mattis in. Tam sayı porta vestibulum nisl, et feugiat tortor tincidunt vel. Aenean dignissim faucibus eleifend. Başka yerde sınıflandırılmamış morbi ante pulvinar mollis eu.

Küçük harfe dönüştür.

Karakter sayısı (harf başına. Boşluk ve noktalama işaretleri yoksayılır):

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

Sipariş edilen karakter sayısı:

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

Ardından, orijinal ve sıralı listeleri kullanarak bir arama tablosu oluşturun:

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

Python sözlüğü:

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

Ve şimdi orijinal metni bu arama tablosuyla kodlayın:

'Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps grip ujr eh prfr ljrfdvu qlmmlphlfbjl es grip lprd. Njmmed ejshvg ojfhv bjrf ur 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 feqrp. Fjfsl tesrmrfrf urj 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. '

Python'u seviyorum!

Kurallar:

  • Programınız bir dizeyi kabul eder ve bir dizge çıkarır.
  • Herhangi bir şey yapmadan önce tüm girdileri küçük harfe dönüştürün
  • Liste sıralamasını nasıl yaptığınız umrumda değil, sadece küçük harfleri sayıyorum
  • Bir şifre çözücü yapmak için bonus puan (-30) (şifre çözme listesini kopyalamak yok, sıfırdan yapın)
  • Bu , böylece en kısa kod kazanır!
  • İyi eğlenceler!

Bir şifre çözücü için kaç puan?
Dijital Travma

Bu eğlenceli bir mücadeledir, ancak buradaki şifreleme yöntemi bir kriptografı ağlatacaktır. Sadece tek bir ikame şifresi değil, aynı zamanda tanınabilir ve sömürülebilir bir önyargı sağlama cesaretine de sahiptir: şifreli bir metnin şifrelenmiş dili kullanması daha yaygındır, düz metnin alfabenin başlangıcına yakın olması daha olasıdır. Sezar'ın Sezar'ı. ;-)
Jonathan Van Matre

@TheDoctor harika bir fikir, ama küçük bir hata yaptınız ... şifreli metin algoritmanıza göre ilgili şifreli harflerle başlamalıdır! :) İlk cümle şimdi M ile başlıyor, ikinci cümle P ile ve benzeri ...
WallyWest

@DigitalTrauma - Bir decryptor için 30 puan diyelim
TheDoctor

Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch? BU İMKANSIZ! Bunu yapabilmek için anahtara (“şifre çözme listeniz“ aka “arama tablosu”) sahip olmanız gerekir. Sadece bir şifre metni almak ve herhangi bir anahtar kullanmadan onu tekrar düz metne dönüştüren bir şifre çözücü sunmasını beklemek, herhangi bir harf veya rakam yazmadan StackOverflow'a bir soru göndermemizi istiyormuşsunuz gibi. Bilgi teorisi zaten bize hiçbir yerden bilgi elde edemeyeceğinizi söylüyor ... ikame şifrenizin bu arama tablosuna (diğer bir deyişle anahtar) ihtiyacı var.
e-sushi

Yanıtlar:


3

GolfScript, 39 karakter

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

Test için çevrimiçi sürüm . Giriş dizesinde birden çok karakter aynı sayıya sahipse sıralamanın tanımlanmadığını unutmayın.

Örnek çıktı

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps grip ujr eh prfr ljrfdvu qlmmlphlfbjl es grip lprd. Njmmed ejshvg ojfhv bjrf ur 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 urj 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.


Lanet golfscript! her zaman kazanır!
TheDoctor

3

Bash / coreutils, 91 karakter

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

Farklı kaydet cipher.sh, chmod + x ve çalıştır:

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

Yakut, 104 92 91 karakter

@Chron sayesinde oldukça az karakter kaydetti

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

Çevrimiçi Sürüm burada. Başka bir cevapta belirtildiği gibi, aynı sayıdaki karakterlerin sıralaması tanımlanmamıştır. "Asdf" girdisiyle, her yanıtın şu ana kadar başka bir çıkışı vardır.

Başka bir deyişle: giriş, her bir harfin benzersiz bir sayım içerdiği tüm alfabeyi içerdiğinde tüm cevaplar aynı davranışa sahiptir (bu nedenle bir deşifre edilebilir kodlamayı temsil eder).


Birkaç küçük gelişme: ("a".."z").to_aolabilir [*?a..?z], m.joinolabilir m*''ve def f(s)...endolabilirf=->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 ]]

Varsayım t, Lorem ipsum metnidir.

f[t]

"Lvgld rqfjd uvmvg FRH edlh, svpflshlhjg eurqrfsrpn lmrh.Njps grip ujr eh prfr ljrfdvu qlmmlphlfbjl es grip lprd.Njmmed ejshvg ojfhv bjrf edilsin 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 edilsin hjgqrf, lütfen mvivghrf ujr imepurh pls.Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp lütfen pvp vlmrh.Njmme sjgfjf jgpe fld ha 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. "

Tarafından oluşturulan değiştirme kuralları 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

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

Sıkıştırılmamış.

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

Giriş dizesini karakter
sayınıza

Bunu sen mi çalıştırdın ? Çıktı: e93i89s71u65l61t59n56a49r47o37c34m31d22p20v15q12b11g10f9h3j1k0w0x0y0z0. Ve bu meydan okumaya bile yaklaşmıyor.
RobIII

0

PHP, 151

(ayarlı 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))));

Bu, metnin komut dosyasının ilk bağımsız değişkeni olmasını bekler. Şöyle ki:

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

Çıktı (söz konusu örneğe göre):

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps grip ujr eh prfr ljrfdvu qlmmlphlfbjl es grip lprd. Njmmed ejshvg ojfhv bjrf ur 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 feqrp. Fjfsl tesrmrfrf urj 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.


0

Smalltalk, 138

s cinsinden girdi:

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

kod çözücü:

s copyTransliterating:m to:i

ama (doğru anlarsam) "i" ve "m" yi tekrar kullanamayacağım gibi, onsuz golf oynayacağım. Yukarıdaki kod, okunabilirlik için eklenen ve karakter sayısına dahil edilmeyen iki ek CR'ye sahiptir.


0

Clojure, 135

(Giriş metninin var'de olduğu varsayılarak 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)

En kısa kod değil, ama Python henüz temsil edilmedi ve gördüğüm gibi "Python seviyorum!" problem ortamında, işte ben

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

Girdi dizesinin komut satırı üzerinden geçirilmesini bekler. ( giriş dizesi sihirli bir şekilde "s" değişkenine eklenmişse karakter sayısı 122'ye düşürülür )

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

Çıkışı

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps grip ujr eh prfr ljrfdvu qlmmlphlfbjl es grip lprd. Njmmed ejshvg ojfhv bjrf ur 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 feqrp. Fjfsl tesrmrfrf urj 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.


Evet, tüm bunları 20 satırlık pitonda yaptım, ama sizinkinden çok daha uzun
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

.. giriş atlandı ..

Lvgld rqfjd uvmvg frh edlh, svpflshlhjg eurqrfsrpn lmrh. Njps grip ujr eh prfr lj rfdvu qlmmlphlfbjl es grip lprd. Njmmed ejshvg ojfhv bjrf ur 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 feqrp. Fjfsl te srmrfrf urj 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: Şifre çözme hakkında bir şaka mıydı? Yoksa imkansız olduğunu kanıtlamak için 30 bonus talep etmeli miyim? Is aabiçin deşifre aabveya bba? Ya babacaöyleydi cacabaya ababcborijinal ya babacakendisi adeta?


0

393 bayt

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

Genişletilmiş sürümü @ PauloHDSousa'nın cevabının


Cevapta neden fazladan fazla alan var?
Qwertiy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.