Você foi contratado pelo governo de Dakota do Norte para criptografar as comunicações do estado. Escreva dois programas, um para criptografar uma mensagem e outro para descriptografar essa mensagem.
O governo não é realmente conhecedor de tecnologia; portanto, o algoritmo de criptografia não precisa ser sofisticado; apenas certifique-se de que o resultado não seja semelhante ao original à primeira vista.
No entanto, você é secretamente leal ao governo de South Dakotan. Seu trabalho é misturar as comunicações, de modo que cada menção de North Dakota
se South Dakota
sobre descriptografia, e vice-versa. Isso também se aplica a North/South Dakotan
e North/South Dakotans
.
Por exemplo:
Dakota do Norte é o condado mais rico da América do Norte, enquanto Dakotans do Sul são mais pobres que o sul da Flórida. - o governo de Dakotan do Norte
sofrerá criptografia e descriptografia, resultando em:
Dakota do Sul é o condado mais rico da América do Norte, enquanto Dakotans do Norte são mais pobres que o sul da Flórida. - o governo Dakotan do Sul
O algoritmo que realiza isso da maneira mais secreta e complicada, como evidenciado por ter o maior número de votos, será aceito.
fonte
string.replace
trabalho simples ? Porque você disse que as pessoas não estão realmente em technologie;)Respostas:
Rubi
Demo
fonte
CJam
Este é o codificador:
e este é o decodificador:
Experimente online aqui
Isso funciona apenas com capital e
N
, emS
D
North/South Dakota
Passe a string de entrada para a primeira função do STDIN. Obtenha a string codificada, passe-a para a segunda função para obter a saída decodificada e convertida.
fonte
.
meioHaHaHaHa!
eThe
?364380128038419794871782113211824472986419260504039724627500790722811712426518562428698978399810134993565366126560239807690210155343815201005388714282
.Java
Eu descobri que a divisão por zero não causa erros neste programa. Este programa codifica totalmente as Strings em um formato que não pode ser rastreado pelo governo de Dakotan do Norte. Devido ao estranho comportamento mencionado acima, a codificação e decodificação pode não funcionar corretamente em todos os casos.
Pergunta: O que é
funnyNumber
igual?fonte
join
àString
classe? * Celebração silenciosa! *funnyNumber
tem um valor dei - 2
. Pessoalmente, não acho que ocultar caracteres em unicode seja muito discreto.i - 2
.\u
funciona fora das cordas.System.out.println(2+\u002f*2/0*\u002f+-2)
.Javascript
Minha solução provavelmente não é a mais inteligente. Mas funciona :) Aqui está um violino
Primeiro eu substituo
north d
porhisdf
esouth d
porhisde
, depois inverto todos os caracteres em bits e os empurrei em uma matriz. A matriz que eu converto em uma string e substitui os valores de caracteres invertidos pelos corretos. Antes disso, substituo os valores dehisdf
ehisde
troquei.fonte
hisde
algum lugar?north d
esouth d
:)AWK: codificador: 165 bytes, decodificador: 61 bytes
O codificador (também responsável por substituir o sul pelo norte e vice-versa):
O decodificador:
Algum teste:
codifica para:
(que deve ser embaralhado o suficiente para governo que não é realmente conhecedor de tecnologia : o))
Em seguida, decodifica em:
Mas isso era esperado: o)
Nota: Dakota do Norte, Dakotan do Norte, Dakotans do Norte, Dakota do Sul, Dakotan do Sul e Dakotans do Sul devem ser corretamente capitalizados.
fonte
C
Ajuntar com:
gcc -Wall -Wextra -Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings -DGCC_WARN -ansi -pedantic file.c
Para o mal máximo, escrito em K&R C com uma pitada de abuso de ponteiro.
Lasciate orgni speranza, voi ch'entrate.
Buśhaīila rukgâī, naǵkxarańga ba tdhuløk.
Além disso, tudo está no
bits
função e nogenkey
função.Corre:
Nota: Ao especificar o
decrypt
modo de digitação, pode ser necessário escapar alguns dos caracteres da tecla com barras invertidas.fonte
JavaScript, ES6
Doce e simples para começar.
Codificador:
Decodificador:
Experimente abaixo em um Firefox mais recente:
fonte
dakotan
comdakota
:)North Dakotan
nãoNorth Dakota
mesmo vale para o sul