Vous avez été engagé par le gouvernement du Dakota du Nord pour crypter les communications de l'État. Écrivez deux programmes, un pour crypter un message et un pour décrypter ce message.
Le gouvernement n'est pas vraiment technophile, donc l'algorithme de chiffrement n'a pas besoin d'être sophistiqué; assurez-vous simplement que le résultat ne ressemble pas à l'original à première vue.
Cependant, vous êtes secrètement fidèle au gouvernement du Dakotan du Sud. Votre travail consiste à mélanger les communications, de sorte que chaque mention de North Dakota
devient South Dakota
lors du décryptage, et vice versa. Cela vaut également pour North/South Dakotan
et North/South Dakotans
.
Par exemple:
Le Dakota du Nord est le comté le plus riche d'Amérique du Nord, tandis que les Dakotans du Sud sont plus pauvres que le sud de la Floride. - le gouvernement du Dakotan du Nord
subira un chiffrement puis un déchiffrement, ce qui entraînera:
Le Dakota du Sud est le comté le plus riche d'Amérique du Nord, tandis que les Dakotans du Nord sont plus pauvres que le sud de la Floride. - le gouvernement du Dakotan du Sud
L'algorithme qui accomplit cela de la manière la plus secrète et la plus délicate, comme en témoigne le plus grand nombre de votes positifs, sera accepté.
string.replace
travail simple ? Parce que vous avez dit que les gens ne sont pas vraimentRéponses:
Rubis
Démo
la source
CJam
Voici l'encodeur:
et voici le décodeur:
Essayez-le en ligne ici
Cela fonctionne uniquement avec le capital
N
,S
etD
enNorth/South Dakota
Passez la chaîne d'entrée à la première fonction de STDIN. Obtenez la chaîne encodée, passez-la à la deuxième fonction pour obtenir la sortie décodée et convertie.
la source
.
entreHaHaHaHa!
etThe
?364380128038419794871782113211824472986419260504039724627500790722811712426518562428698978399810134993565366126560239807690210155343815201005388714282
.Java
J'ai découvert que la division par zéro ne provoque pas d'erreurs dans ce programme. Ce programme encode complètement les cordes sous une forme qui ne peut pas être attribuée au gouvernement du Dakota du Nord. En raison du comportement étrange mentionné ci-dessus, l'encodage et le décodage peuvent ne pas fonctionner correctement dans tous les cas.
Question: Qu'est-ce qui est
funnyNumber
égal?la source
join
à laString
classe? * Célébration silencieuse! *funnyNumber
a une valeur dei - 2
. Personnellement, je ne pense pas que cacher des caractères en unicode soit très sournois.i - 2
.\u
fonctionne en dehors des cordes.System.out.println(2+\u002f*2/0*\u002f+-2)
.Javascript
Ma solution n'est probablement pas la plus intelligente. Mais ça marche :) Voici un violon
Je remplace d'abord
north d
parhisdf
etsouth d
parhisde
, puis j'inverse tous les caractères au niveau du bit et les pousse dans un tableau. Le tableau que je convertis en chaîne, puis remplace les valeurs de caractères inversées par les bonnes. Avant cela, je remplace les valeurs dehisdf
ethisde
commuté.la source
hisde
quelque part?north d
etsouth d
:)AWK: Encodeur: 165 octets, Décodeur: 61 octets
L'encodeur (également en charge du remplacement du Sud par le Nord et vice versa):
Le décodeur:
Quelques tests:
code en:
(cela devrait être assez brouillé pour un gouvernement pas vraiment technophile : o))
Il se décode ensuite en:
Mais c'était attendu: o)
Remarque: le Dakota du Nord, le Dakota du Nord, les Dakotans du Nord, le Dakota du Sud, le Dakota du Sud et les Dakotans du Sud doivent être correctement capitalisés.
la source
C
Compiler avec:
gcc -Wall -Wextra -Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings -DGCC_WARN -ansi -pedantic file.c
Pour un maximum de mal, écrit en K&R C avec un tiret d'abus de pointeur.
Lasciate ogni speranza, voi ch'entrate.
Buśhaīila rukgâī, naǵkxarańga ba tdhuløk.
De plus, tout est dans la
bits
fonction et lagenkey
fonction.Courir:
Remarque: Lorsque vous spécifiez la clé en
decrypt
mode, il peut être nécessaire d'échapper certains des caractères de la clé avec des barres obliques inverses.la source
JavaScript, ES6
Doux et simple pour commencer.
Encodeur:
Décodeur:
Essayez-le ci-dessous sur un dernier Firefox:
la source
dakotan
pardakota
:)North Dakotan
pas laNorth Dakota
même chose pour le sud