É simples ou difícil?
Para sua coisa mais difícil, você deve criar algo para que um computador descubra se algumas palavras são explicadas de maneira simples. Algo é explicado de uma maneira simples se ele usar apenas as dez centenas de palavras mais usadas. Caso contrário, é explicado de uma maneira difícil. Isso pode ser uma coisa de computador completo ou parte de uma coisa de computador. (programa ou função completa)
Há uma coisa para um computador ler que contém todas as dez centenas de palavras com um espaço entre cada palavra. O nome da coisa para o computador ler é chamado 'most used.txt'. Você pode pegar essa coisa deste computador .
A pessoa que usa a coisa do computador digitará algumas palavras. (Pode ser STDIN, argumentos de função ou argumentos de linha de comando) O computador deve dizer algo como verdadeiro se as palavras forem simples e algo como não verdadeiro se for difícil. ( verdade falsa ) A pessoa que faz o menor tempo possível para o computador é o melhor. As coisas que toda pessoa sabe que são ruins são ruins. ( lacunas padrão se aplicam )
Mais informações sobre como o computador funciona:
Não importa se as palavras são GRANDES ou pequenas.
As figuras que facilitam o conhecimento da palavra (pontuação) não importam. Portanto, se a pessoa que usa o computador diz "não", não é uma palavra diferente da palavra "não". Números e outras imagens também não importam. Portanto, se a pessoa disser "HE $$ ll9o", o computador deve lê-lo como "olá"
As pequenas linhas entre as palavras (traços) funcionam da mesma maneira que os espaços. Portanto, a palavra "iniciante cinco" é a mesma que a palavra "iniciante cinco".
Mais informações sobre como criar palavras como esta:
Portanto, verifique as palavras do usuário da coisa do computador na palavra grande para ver se todas as palavras da palavra pequena estão na palavra grande?
— Geobits 17/07/2015
Talvez seja só eu, mas achei isso extremamente difícil de ler.
Talvez seja melhor dar uma sinopse em conversa simples, seguida de uma especificação real em inglês "real".
O dicionário precisa ser lido de um arquivo? Isso pode excluir definitivamente alguns idiomas.
Você deveria ter sofrido uma penalidade por cada palavra usada que seja difícil no programa.
Isso torna a suposição bastante impura que most used.txtestá no diretório raiz, pois o CJam não pode manipular caminhos relativos.
Como alternativa, temos as seguintes soluções baseadas na Web (78 e 29 bytes):
A maneira "correta" de fazer isso no CJam seria ler as duas entradas do STDIN (entrada na primeira linha, dicionário na segunda), o que é possível em 18 bytes:
Você pode tentar a última versão no intérprete CJam . (permalink testado no Chrome)
Você poderia usar tinyurl na url unidade para torná-lo mais curto
@MIWright Descobri. Isso e o upload do arquivo para Pastebin salvou 12 bytes. Obrigado!
Não tem certeza se é entender o desafio porque é difícil ler.
Isso cria uma parte sem nome de uma coisa de computador que aceita uma string e retorna algo como um verdadeiro ou como um não verdadeiro.
Obrigado a Dennis pela inspiração.
Algo como part-of-a-computer-thing(s){...}deve valer pontos de bônus.
@ Dennis: Como é isso? :)
Saídas TrueeFalse
Isso manipulará uma entrada don'tcorretamente?
— 21915 Alex A.
@AlexA. Retorna True. Isso está correto?
Algum motivo para você dividir most used.txtpor novas linhas? Não tenho 100% de certeza de como isso funciona, mas imagino que você esteja tentando dividi-lo em cada palavra individual do arquivo.
— 23915 DeadChex
@DeadChex Qual é o arquivo de texto fornecido separado por? Não consigo acessá-lo porque ele gera um erro SSL.
A questão afirma: "Há uma coisa para um computador para ler que tem todos os dez cem palavras com um espaço entre cada palavra"
Testes, onde o acima é o arquivo common.pyth
APL (Dyalog) , 69 bytes
Supõe que o arquivo esteja no diretório atual.
A primeira linha define uma função auxiliar de normalização e divisão na lista de strings, s :
s← s é
819⌶ o
' '( resultado em minúsculas da função a seguir, com um espaço como argumento à esquerda ...
1↓¨ elimine um de cada uma das
, concatenações dos argumentos
⊂⍨ cortados antes de cada elemento em que
⊣ o argumento à esquerda
= é igual à
, concatenação dos argumentos
) aplicados ao
'[- ]' '\W'⎕R' ' '' painel de substituições do PCRE espaço → espaço, caractere não-palavra → nada
∧/(… ) É verdade que
s a
⍞ entrada de texto normalizada e dividida
∊ é membro do primeiro elemento
s normalizado e dividido do (conteúdo, codificação, estilo de nova linha) do arquivo
⎕NGET'most used.txt'
(Não concorrente, pois a pergunta antecede a especificação do ES7)
Alguém conseguiu uma cópia do arquivo online que eu posso usar para criar um Snippet funcional?
Eu acho que você pode salvar 22 bytes removendo thene 7 bytes removendo alert.
Você pode elaborar, @Titus? Cada etapa disso retorna uma promessa e, portanto, thené necessário que os s executem o código subsequente quando resolverem.
Eu não estou tão familiarizado com ES7; estava pensando na direção errada. Mas talvez você possa criar algo mais curto se reduzir a entrada para todas as palavras que não estão na lista? Duvido que o PHP possa realmente vencer o JS em quase 40%.
Ah, sim, definitivamente há espaço para melhorias lá; esse foi o meu último desafio do dia e tive uma dor de cabeça, então publiquei o que tinha até agora para revisitar amanhã. Infelizmente, a cadeia de promessas necessária apenas para obter o conteúdo de um arquivo coloca o JS em desvantagem nesses desafios em relação ao PHP, mas ainda é melhor do que a alternativa de usar o XHR.
recebe entrada de STDIN, assume
saídas de dicionário de linha única com 1(erro) para falsidade, 0(ok) para verdade. Corra com -R.
Divida a entrada por caracteres que não sejam palavras, faça um loop pela matriz (palavras) resultante:
se a palavra estiver no dicionário, continue; mais exit(1).
implícito exit(0).
uma palavra após a outra: Se a palavra estiver nas palavras mais usadas, continue; else retorne 1. retorne 0.
e: eu poderia economizar dois pontos se as palavras mais usadas tivessem um espaço na frente e no final.
Com a frase passada como argumento.
Espaçados e com guias:
Como assim, cabe a você importar o que é necessário ?
@Beta eu uso algumas das classes de utilitários de Java que, se você fosse para colocar esta função em um programa você teria de importação (ou seja, java.io.*e java.util.*), bem como pítons importar declaração
Bem, você precisa incluir essas importações na sua contagem de bytes. Você não tem permissão para excluir declarações de importação em Python, então você não pode excluí-los em Java