Un lipogramme est un bloc de mots qui omet un symbole particulier. En ce moment, j'évite notre cinquième symbole de 26 qui apparaît généralement. Vous devriez savoir maintenant ce que je suis en train d'omettre. Sinon, cherchez "lipogramme" et vous saurez.
Ta tâche
Avec un caractère, un blanc et une chaîne suivante (des blancs peuvent apparaître dans ceci; avec seulement des caractères ASCII 32-126) en entrée, sortie en faux si ce caractère est dans la chaîne en entrée, truey sinon. Ce caractère que vous devez rechercher tiendra toujours dans deux plages: "A" à "Z" ou "a" à "z" (ASCII 65-90, 97-122). Ne pas distinguer les capitales et les non-capitales. Ne vous inquiétez pas non plus des blancs et des symboles de ponctuation. Les programmes et les fonctions satisfont. En outre, vous pouvez diviser le caractère et la chaîne en entrée en deux arguments pour les programmes ou les fonctions, et chaîne en tant que premier argument est acceptable.
Des illustrations
Vérité
e This is a lipogram.
a You need to consider other letters too.
E Capitals also count.
Fausseté
e This sentence is not a lipogram (for e).
t This particular letter is surprisingly hard.
A You don't need to care about any non-alphabetic symbols.
Version sans lipogramme
Un lipogramme est une série de mots qui omet une lettre. J'ai oublié la lettre "e" ci-dessus.
Votre tâche consiste à prendre un caractère et une chaîne (pouvant inclure des espaces) en entrée, séparés par un espace ou une nouvelle ligne, et une sortie falsy si le caractère est dans la chaîne, et une vérité sinon. Vous pouvez supposer que la chaîne est composée uniquement de caractères ASCII imprimables (codes de caractère 32-126). Le caractère sera toujours dans l'alphabet anglais et il n'y a pas de différence entre minuscules et majuscules. Le personnage ne sera ni un espace ni un symbole. Vous pouvez écrire un programme ou une fonction. Dans les deux cas, vous pouvez prendre le caractère et la chaîne comme arguments séparés et la chaîne peut figurer en premier.
la source
Réponses:
C, 42 octets
la source
Javascript ES6
342623 octetsrasé 8 octets merci @ MartinBüttner
la source
/i
affectait\1
!05AB1E ,
7643 octetsCode:
Explication:
Essayez-le en ligne!
La vérité est quand la lettre courante est sortie. La fausseté est quand rien n'est sorti.
la source
-
efficacement une opération de complément ?TeaScript,
53 octetsAha \ o /! J'ai oublié l'entrée implicite! TeaScript insérera automatiquement
x.
(l'entrée) au début. Je peux alors vérifier s'il a l'autre entrée (variableµ
) et donc un NOT (N
). Je suppose que le meilleur avantage de TeaScript est son entrée impliciteEssayez-le en ligne
Explication
la source
Bash,
16 à11 octets-i
est l'indicateur insensible à la casse,-v
inversé (recherche d'une non-correspondance).Le caractère doit être fourni en tant qu'argument de ligne de commande et la chaîne de test sous STDIN.
Réduit de 5 octets avec l'aide de @ DigitalTrauma !
Échantillons:
la source
grep -iv $1
. Je ne vois rien de mal à mélanger STDIN et les arguments de ligne de commande comme méthodes de saisie - je l'avais déjà fait auparavant - mais il existe peut-être un précédent précédent qui m'a^D
utilisateurs de commenter cette réponse? @Downgoat - êtes-vous là? ;-)Japt,
1264 octetsTestez-le en ligne!
La réponse TeaScript de @ Downgoat m'a rappelé que Japt a exactement la même fonction intégrée, coupant deux derniers octets.
Comment ça fonctionne
la source
CJam, 6 octets
Essayez-le en ligne! lel
Explication
la source
JavaScript (ES6), 29 octets
la source
c=>s=>!RegExp(c,"i").test(s)
, en sauvegardant un octet.c=>s=>!s.match(c,'i')
a 21 ans :)match
ne prend qu'un argument. Le deuxième argument enregistre un avertissement de console dans Firefox 39 ou ultérieur et ne fonctionnera pas du tout dans Firefox 47.Python 3, 36
Avoir à ignorer le cas est étonnamment coûteux.
Prend les arguments comme (char, chaîne)
la source
Pyth,
87 octetsExplication
Merci @FryAmTheEggman de me dire que je peux utiliser
-
au lieu de!}
Essayez-le ici
la source
O, 8 octets
Une fonction anonyme qui prend un caractère et une chaîne.
Essayez-le en ligne.
Explication
la source
Perl, 11 + 1 = 12 octets
Nécessite le
-p
commutateur et prend les entrées comme$string\n$letter
Comment ça fonctionne:
la source
<<<
.) (Et en utilisant STDIN normal (pas<<<
), je reçois 1 à moins que la lettre est le dernier caractère de la chaîne, parce que vous ne chomp pas la lettre .)printf "this is a lipogram\ne\n" | perl -pe'$_=lc!~lc<>'
place.<<<
est la syntaxe bash.<<<
n'est qu'un autre moyen de passer stdin.Java, 63 octets.
la source
(s,c)->!s.matches("(?i:.*"+c+".*)")
qui est plus courteString
etchar
quelque part.MATL , 5 octets
Essayez-le en ligne!
la source
Sérieusement, 6 octets
Essayez-le en ligne!
Prend en tant que
'string'\n'char'
Explication:
la source
,ù,ùìuY
travail? (C'est supposé être le moi qui indexe mais je ne me souviens plus lequel fait ça)Julia 0.3,
2220 octetsuppercase
est un long mot.Comment ça fonctionne
la source
Rétine, 11
Je ne suis pas sûr que ce qui compte comme véracité / fausseté dans Retina, cela fera écho à la ligne s'il s'agit d'un lipogramme pour le caractère donné, et la chaîne vide sera renvoyée si ce n'est pas le cas.
Cela fonctionnera également pour une entrée multiligne.
Essayez-le en ligne!
la source
Minkolang 0,15 , 10 octets
Essayez ici.
Explication
la source
Rouille, 75 octets
Le plus gros score signifie que je gagne, non? > _ <
Essayez ici.
la source
Gelée, 8 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
CJam, 10 octets
Une fonction anonyme (bloc) qui prend un caractère (pas une chaîne!) Et une chaîne.
Essayez-le en ligne.
Explication
la source
PowerShell,
3632302925 octetsUtilise l'
-notmatch
opérateur et affiche simplementTrue
ouFalse
.la source
Python, 34 octets
Vérifie que le caractère
c
est dans la chaînes
, ignorant la casse en ajoutant une copie de casses
às
. La négation est terminéenot
, ce qui a l'air long mais je ne vois pas mieux. C'est la même longueur:Vous ne pouvez pas omettre les parens sinon Python interprétera l'expression comme une inégalité de forme chaînée à trois valeurs
_ in _ < _
.Python 3.5 devrait autoriser 33 octets via des conversions définies, bien que je ne puisse pas le tester pour le moment.
la source
Pyke, 7 octets
Explication:
la source
JavaScript ES6,
41 à40 octetsPrend la chaîne entière comme argument. Je ne peux pas économiser d'octets en acceptant deux arguments différents car ma réponse se fondrait alors dans l'autre réponse ES6 :(
la source
not in
.R, 26 octets
x est la chaîne, y est la lettre, le T dans l'appel à grepl la rend insensible à la casse.
la source
Jolf,
67 octetsAlors. Beaucoup. Six. SMS? Eh bien, essayez néanmoins ici . Remplacer
⌂
par\x7f
.la source
Ruby, 17 octets
la source
Lot, 53 octets
Accepte les entrées en tant que deux arguments de ligne de commande. (Citez le deuxième argument si nécessaire.) Affiche 1 en cas de succès, rien si le premier argument est (insensiblement) trouvé dans le second.
la source
Mathematica,
3332 octetsJ'adore quand ## peut être utilisé. L'entrée est une chaîne, puis char.
Ou, une version sensible à la casse: (11 octets :)
Oui, juste un construit.
la source