ปัญหา:
คุณต้องสร้างโปรแกรมที่ทำสิ่งต่อไปนี้:
- ใช้สตริงตัวพิมพ์เล็กจำนวนมากและนับจำนวนการเกิดทั้งหมดของตัวอักษรแต่ละตัว
- จากนั้นคุณใส่ตัวอักษรตามลำดับจากมากไปน้อย
- จากนั้นคุณนำรายการนั้นและเปลี่ยนเป็นตัวเข้ารหัส / ตัวถอดรหัสสำหรับข้อความ
- จากนั้นเข้ารหัสข้อความด้วยตัวเลขนั้น
ยากที่จะเข้าใจ? ดูตัวอย่างนี้:
ตัวอย่าง:
ข้อความที่ป้อน:
Lorem ipsum dolor sit amet, consipetur adipiscing elit. Nunc sed dui at nisi euismod pellentesque ac sed enim. ไม่มีใครรู้ว่าเพียงแค่คุณเป็นคนดี, eu fringilla เป็น porttitor. Pellentesque vel pharetra nisl Vestgulum สวมบทบาท ultrices magna a fringilla นักเขียนที่น่าสนใจ, ผู้ที่ชื่นชอบการถ่ายภาพฉากหลัง, สิ่งอำนวยความสะดวกอื่น ๆ , scelerisque viverra turpis metus นั่ง amet sapien. สิ่งอำนวยความสะดวกที่ได้รับการสนับสนุน เสื้อของคุณจะถูกส่งไปยังสินค้าโภคภัณฑ์ที่ไม่เหมาะสม Nulla cursus urna sem, ที่ tincidunt sem molestie vel. Nullam fringilla ante eu dolor bibendum, ตำแหน่งที่ชัดเจนของ lacinia อยู่ข้างล่างนี้, เร็ว ๆ นี้. Phasellus lobortis dolor sodales sapien mollis hendrerit จำนวนเงินที่เก็บชั่วคราว, ค่าที่แตกต่างกันในทุกด้านของจำนวนเงินทั้งหมดของคุณ, et feugiat tortor tincidunt vel. Aenean dignissim eleifend faucibus ไม่ทราบว่าใครเป็นคนแรกหรือน้อยกว่าใครใน ipsum.
แปลงเป็นตัวพิมพ์เล็ก
จำนวน Char (ตัวอักษรต่อช่องว่างและเครื่องหมายวรรคตอนถูกละเว้น):
[('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 และไข้หวัดใหญ่ lprd Njmmed ejshvg 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 edh Fjfsl tesrmrfrf หาย hjgqrf, กรุณา mvivghrf ujr imepurh กรุณา Vlfhrijmjd es jgpe jh mesjf svddvuv fvmmrsrhjurp กรุณา pvp klmrh ไม่ระบุ 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 เพิ่ม urnprffrd lmlrtlpu tejsrijf Mvgir กรุณา plbjl klm ephl qjmkrpeg dvmmrf lj rp rqfjd '
ฉันรักหลาม!
กฎ:
- โปรแกรมของคุณจะยอมรับสตริงและส่งออกหนึ่ง
- แปลงอินพุตทั้งหมดเป็นตัวพิมพ์เล็กก่อนทำอะไรก็ได้
- ฉันไม่สนใจว่าคุณจะเรียงลำดับรายการอย่างไร แต่นับตัวอักษรพิมพ์เล็กเท่านั้น
- คะแนนโบนัส (-30) สำหรับการทำ decryptor (ไม่มีการคัดลอกรายการถอดรหัสทำตั้งแต่เริ่มต้น
- นี่คือ รหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ!
- มีความสุข!
Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch? นั่นเป็นไปไม่ได้! คุณจะต้องมีคีย์ ("รายการถอดรหัส" ของคุณ "aka" ตารางค้นหา ") เพื่อให้สามารถทำเช่นนั้นได้ เพียงแค่ใช้ไซเฟอร์เท็กซ์และคาดหวังว่าทุกคนจะให้ตัวถอดรหัสที่แปลงกลับเป็นข้อความธรรมดาโดยไม่ต้องใช้คีย์ใด ๆ เหมือนกับว่าคุณกำลังขอให้เราโพสต์คำถามไปที่ StackOverflow โดยไม่ต้องพิมพ์ตัวอักษรหรือตัวเลขใด ๆ ทฤษฎีข้อมูลบอกเราแล้วว่าคุณไม่สามารถรับข้อมูลจากที่ไหนเลย ... ดังนั้นศูนย์การทดแทนของคุณต้องการตารางการค้นหา (หรือที่เรียกว่ากุญแจ)