Tenho certeza de que a maioria, se não todos, já se deparou com isso em algum momento ou outro:
De acordo com uma pesquisa na Cmabrigde Uinervtisy, não é possível ver o que há em um artigo, o que é mais importante é o primeiro e o último a ser encontrado. O rset pode ser muito simples e você pode usá-lo com um pouco de porbelm. Isso ocorre porque o homem não pode ser perseguido por istlef, mas sim como um mundo inteiro.
Crie um programa que insira qualquer quantidade de texto. Para fins de teste, use a versão sem codificação do texto acima, encontrada abaixo.
O programa deve então transpor aleatoriamente as letras de cada palavra com um comprimento de 4 ou mais letras, exceto a primeira e a última letra de cada palavra.
Todas as outras formatações devem permanecer as mesmas (maiúsculas e pontuação, etc.).
Texto de teste:
Segundo um pesquisador da Universidade de Cambridge, não importa em que ordem as letras de uma palavra são, a única coisa importante é que a primeira e a última letra estejam no lugar certo. O resto pode ser uma bagunça total e você ainda pode lê-lo sem problemas. Isso ocorre porque a mente humana não lê cada letra sozinha, mas a palavra como um todo.
Como sempre, este é um código de golfe. O menor código vence.
rscheearch
texto de exemplo.don't
permanecer na mesma posição? A especificação diz,All other formatting must remain the same (capitalization and punctuation, etc.).
mas não tenho certeza de como isso funciona aqui ...Respostas:
Ruby -
5048 caracteres, mais o-p
parâmetro da linha de comando.Obrigado @primo por -2 char.
Teste
fonte
\K
asserção look-behind de largura zero? Além disso, o agrupamento mais interno é desnecessário, usando em$&
vez de$1
.$&
dica :)codegolf
script[*$&.chars]
=>$&.chars
, economizando 3 bytes.Python, 118
Python é terrivelmente estranho para coisas como esta!
Bônus
Tentei outras coisas que achei inteligentes, mas você precisa importar todo tipo de coisa e muitos métodos não têm valores de retorno, mas precisam ser chamados separadamente como sua própria declaração. O pior é quando você precisa converter a string em uma lista e depois
join
voltar a ser uma seqüência de caracteres.Enfim, aqui estão algumas das coisas que eu tentei:
Regex! Permutações! Você não pode embaralhar uma partição de uma lista diretamente eshuffle
retornarNone
, sim!fonte
PHP 84 bytes
Usando um regex para capturar palavras com pelo menos
43 letras † e embaralhar os caracteres internos. Esse código também pode manipular a entrada com várias linhas.Se apenas uma linha de entrada for necessária (como no exemplo), isso poderá ser reduzido para 68 bytes
† Há apenas uma letra no meio, por isso não importa se você a embaralha.
fonte
J (48)
Explicação:
1!:1[3
: leia todas as entradas do stdinrxapply
: aplique a função fornecida às partes da entrada que correspondem à regex({~?~@#)
: um trem de verbos que embaralha sua entrada:#
conta o comprimento, isso é aplicado aos dois lados da?
atribuição de N números distintos de 0 a N e, em{
seguida , seleciona os elementos nesses índices da matriz de entrada.('\w(\w+)\w';,1)
: use essa regex, mas use apenas o valor do primeiro grupo[1!:2&4
: envia saída não formatada para stdout''[
: suprime a saída formatada. Isso é necessário porque, caso contrário, ele somente envia a parte da saída que cabe em uma linha de terminal e termina com...
.fonte
Retina , 10 bytes
Experimente online!
Ei, esse velho desafio foi feito para a nova Retina!
Explicação
\B\w+\B
corresponde a grupos de letras entre não-limites, ou seja, grupos de letras que não começam nem terminam uma palavra. Como as expressões regulares são gananciosas, isso corresponderá a todas as letras de uma palavra, exceto a primeira e a última.V
é o estágio "reverso", que reverte a ordem dos caracteres em cada correspondência da regex. Com a?
opção, embaralha-os em seu lugar.fonte
APL 107
Infelizmente, meu intérprete de APL não suporta regexs, então aqui está uma versão inicial onde o texto a ser codificado é armazenado na variável t:
Essencialmente, o código divide o texto em palavras com base apenas nas letras do alfabeto e depois nas letras entre a primeira e a última letra dessas palavras. Essas letras são embaralhadas e toda a cadeia de caracteres remontada.
fonte
APL,
5849Acredito que isso funcione no IBM APL2 (não tenho IBM APL)
Caso contrário, no Dyalog APL, adicione à frente:
que adiciona 6 caracteres
Isso pressupõe que os únicos caracteres que não sejam palavras são espaço, vírgula e ponto.
fonte
VBA, 351
373/409Método alternativo (maior):
Ambos os métodos alteram o valor da variável passada para o
Sub
. ieirá produzir algo como isto:
Além disso, isso aleatoriamente a pontuação da metade da palavra, portanto, isso pode não se encaixar na especificação 100%.
fonte
APL NARS 172 chars
13 + 17 + 18 + 44 + 41 + 8 + 17 + 5 + 9 = 172; Esta função g () tem entrada como uma string; tem saída como uma sequência. Eu adiciono o comando de entrada porque não sei como inserir \ 'em uma seqüência de caracteres citada. Comentado
resultado
fonte
PHP 7.1, não competindo, 80 bytes
recebe entrada dos argumentos da linha de comando. Corra com
-nr
. (obviamente falhará na pontuação)fonte
PHP, 94 + 1 bytes
+1 para
-R
sinalizadorEntrada do tubo através
php -nR '<code>'
.Nota:
preg_replace_callback
chegou ao PHP na versão 4.0.5; encerramentos foram introduzidos no php 5.3;portanto, isso requer PHP 5.3 ou posterior.
Infelizmente, a correspondência é sempre enviada como uma matriz, mesmo que não haja subpadrões,
portanto , não posso usar apenas
str_shuffle
como retorno de chamada, o que economizaria 29 bytes.fonte
JavaScript,
7667 bytesgraças a Arnauld por -9 bytes.
Experimente online!
Ungolfed
fonte
/\B\w+\B/g
. (Mas, para a recompensa, observe que o tamanho do código não é importante. )R, 179
Usando a função que escrevi para as letras aleatórias em um problema de palavra :
Entrada:
Solução:
Resultado:
fonte
Pitão, 23 bytes
Não competir porque Pyth foi criado depois que este desafio foi lançado.
Experimente online
fonte
Japonês , 32 bytes
Experimente online!
fonte
Java,
1557834 bytes Obrigado por @JoKing para obter dicas.Um pouco tarde para a competição. Esqueci que eu tinha começado com este problema.
Golfe
Não-golfe
fonte
Sidef ,
8985 bytesBloco (chamado anônimo):
Saída, quando usado como
{ ... }('..')
:Um pouco não-destruído
fonte