문제:
다음을 수행하는 프로그램을 만들어야합니다.
- 큰 소문자 텍스트 문자열을 사용하고 각 문자의 모든 발생 횟수를 계산합니다.
- 그런 다음 가장 큰 것부터 가장 적은 것까지 순서대로 문자를 넣습니다.
- 그런 다음 해당 목록을 가져와 텍스트의 인코더 / 디코더로 바꿉니다.
- 그런 다음 해당 암호로 텍스트를 인코딩합니다.
이해하기 어려운가요? 이 예제를보십시오 :
예:
입력 텍스트 :
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) (암호 해독 목록을 복사하지 않고 처음부터 다시 수행)
- 이것은 코드 골프가장 짧은 코드가 승리합니다!
- 즐기세요!
Bonus points (-30) for making a decryptor (no copying the decryption list, do it from scratch
? 불가능하다! 그렇게하려면 키 (“암호 해독 목록”, 즉“조회 테이블”)가 있어야합니다. 암호를 입력하고 키를 사용하지 않고 암호를 일반 텍스트로 다시 변환하는 암호 해독기를 제공 할 것을 기대하는 것은 문자 나 숫자를 입력하지 않고 StackOverflow에 질문을 게시하도록 요청하는 것과 같습니다. 정보 이론은 이미 우리가 아무데도 정보를 얻을 수 없다는 것을 알려줍니다. 따라서 대체 암호에는 해당 조회 테이블 (일명 키)이 필요합니다.