Ein Lipogramm ist ein Wortblock, in dem ein bestimmtes Symbol fehlt. Im Moment vermeide ich unser fünftes Symbol von 26, das häufig auftaucht. Sie sollten jetzt wissen, was ich auslasse. Wenn nicht, schauen Sie nach "Lipogramm" und Sie werden es wissen.
Deine Aufgabe
Mit einem Zeichen, einem Leerzeichen und einer folgenden Zeichenfolge (in dieser werden möglicherweise Leerzeichen angezeigt; mit nur ASCII 32-126-Zeichen) in der Eingabe wird die Ausgabe falsch, wenn dieses Zeichen in der Eingabezeichenfolge enthalten ist, und wenn nicht, wahr. Dieses Zeichen, nach dem Sie suchen müssen, passt immer in zwei Bereiche: "A" bis "Z" oder "a" bis "z" (ASCII 65-90, 97-122). Unterscheiden Sie nicht zwischen Hauptstädten und Nicht-Hauptstädten. Sorgen Sie sich auch nicht um Leerzeichen oder Satzzeichen. Sowohl Programme als auch Funktionen erfüllen. Sie können auch Eingabezeichen und Zeichenfolge für Programme oder Funktionen in zwei Argumente aufteilen, und Zeichenfolge als erstes Argument ist in Ordnung.
Abbildungen
Wahrheit
e This is a lipogram.
a You need to consider other letters too.
E Capitals also count.
Falsch
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.
Nicht lipogrammierte Version
Ein Lipogramm ist eine Reihe von Wörtern, die einen Buchstaben auslassen. Ich habe den Buchstaben "e" oben weggelassen.
Ihre Aufgabe ist es, ein Zeichen und eine Zeichenfolge (die Leerzeichen enthalten kann) als Eingabe zu verwenden, die durch ein Leerzeichen oder eine neue Zeile getrennt sind, und eine falsche Ausgabe zu erhalten, wenn sich das Zeichen in der Zeichenfolge befindet, und ansonsten die Wahrheit. Sie können davon ausgehen, dass die Zeichenfolge nur aus druckbaren ASCII-Zeichen besteht (Zeichencodes 32-126). Das Zeichen wird immer im englischen Alphabet geschrieben und es gibt keinen Unterschied zwischen Klein- und Großbuchstaben. Das Zeichen wird kein Leerzeichen oder Symbol sein. Sie können ein Programm oder eine Funktion schreiben. In beiden Fällen können Sie das Zeichen und die Zeichenfolge als separate Argumente verwenden, wobei die Zeichenfolge an erster Stelle stehen kann.
quelle
Antworten:
C, 42 Bytes
quelle
Javascript ES6
342623 Bytes8 bytes rasiert danke @ martinbüttner
quelle
/i
betroffen ist\1
!05AB1E ,
7643 BytesCode:
Erläuterung:
Probieren Sie es online!
Wahrheit ist, wenn der aktuelle Brief ausgegeben wird. Falsch ist, wenn nichts ausgegeben wird.
quelle
-
effektiv ?TeaScript,
53 BytesAha \ o /! Ich habe die implizite Eingabe vergessen! TeaScript fügt
x.
am Anfang automatisch die Eingabe ein. Ich kann dann überprüfen, ob es den anderen Eingang (in Variableµ
) und damit ein NOT (N
) hat. Ich denke, der beste Vorteil von TeaScript ist die implizite EingabeProbieren Sie es online aus
Erläuterung
quelle
Bash,
1611 Bytes-i
Ist das Flag, bei dem die Groß- / Kleinschreibung nicht beachtet wird,-v
invertiert (prüft auf Nichtübereinstimmung).Das Zeichen muss als Befehlszeilenargument und die Testzeichenfolge für STDIN angegeben werden.
Mit Hilfe von @ DigitalTrauma um 5 Byte reduziert !
Probeläufe:
quelle
grep -iv $1
. Ich sehe nichts falsches darin, STDIN- und Befehlszeilenargumente als Eingabemethoden zu mischen - ich habe es zuvor getan - aber vielleicht gibt es einen Meta-Präzedenzfall, den ich verpasst habe ...^D
Benutzer dazu bringen, diese Antwort zu kommentieren? @ Downgoat - bist du da? ;-)Japt,
1264 BytesOnline testen!
Die TeaScript-Antwort von @Downgoat hat mich daran erinnert, dass Japt genau das Gleiche enthält und die letzten zwei Bytes abgeschnitten hat.
Wie es funktioniert
quelle
CJam, 6 Byte
Probieren Sie es online! lel
Erläuterung
quelle
JavaScript (ES6), 29 Byte
quelle
c=>s=>!RegExp(c,"i").test(s)
, ein Byte speichern.c=>s=>!s.match(c,'i')
ist 21. :)match
nur ein Argument. Das zweite Argument protokolliert eine Konsolenwarnung in Firefox 39 oder höher und funktioniert in Firefox 47 überhaupt nicht.Python 3, 36
Groß- und Kleinschreibung ignorieren zu müssen, ist überraschend teuer.
Nimmt die Argumente als (char, string)
quelle
Pyth,
87 BytesErläuterung
Vielen Dank an @FryAmTheEggman, dass Sie mir gesagt haben , dass ich
-
anstelle von verwenden kann!}
Probieren Sie es hier aus
quelle
O, 8 Bytes
Eine anonyme Funktion, die ein Zeichen und eine Zeichenfolge akzeptiert.
Probieren Sie es online aus.
Erläuterung
quelle
Perl, 11 + 1 = 12 Bytes
Benötigt den
-p
Schalter und nimmt die Eingabe als$string\n$letter
Wie es funktioniert:
quelle
<<<
.) (Und<<<
wenn ich normales STDIN (nein ) verwende, erhalte ich 1, es sei denn, der Buchstabe ist das letzte Zeichen in der Zeichenfolge, weil Sie den Buchstaben nicht chompen .)printf "this is a lipogram\ne\n" | perl -pe'$_=lc!~lc<>'
stattdessen verwenden.<<<
ist Bash-Syntax.<<<
ist nur eine andere Möglichkeit, stdin zu übergeben.Java, 63 Bytes.
quelle
(s,c)->!s.matches("(?i:.*"+c+".*)")
der kürzer istString
undchar
irgendwo setzen.MATL , 5 Bytes
Probieren Sie es online!
quelle
Im Ernst, 6 Bytes
Probieren Sie es online!
Übernimmt die Eingabe als
'string'\n'char'
Erläuterung:
quelle
,ù,ùìuY
Arbeit? (Das soll das Ich sein, das indexOf macht, aber ich kann mich nicht erinnern, welches das macht)Julia 0.3,
2220 Bytesuppercase
ist ein langes Wort.Wie es funktioniert
quelle
Retina, 11
Ich bin nicht sicher, was in Retina als wahr / falsch gilt. Dies gibt die Zeile wieder, wenn es sich um ein Lipogramm für das angegebene Zeichen handelt, und gibt die leere Zeichenfolge zurück, wenn dies nicht der Fall ist.
Dies funktioniert auch bei mehrzeiliger Eingabe.
Probieren Sie es online!
quelle
Minkolang 0,15 , 10 Bytes
Probieren Sie es hier aus.
Erläuterung
quelle
Rust, 75 Bytes
Die höchste Punktzahl bedeutet, dass ich gewinne, oder? > _ <
Probieren Sie es hier aus.
quelle
Gelee, 8 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
CJam, 10 Bytes
Eine anonyme Funktion (Block), die ein Zeichen (keine Zeichenfolge!) Und eine Zeichenfolge enthält.
Probieren Sie es online aus.
Erläuterung
quelle
PowerShell,
3632302925 ByteVerwendet den
-notmatch
Operator und gibt einfachTrue
oder ausFalse
.quelle
Python, 34 Bytes
Prüft , ob ein Zeichen
c
in einer Zeichenfolge enthalten ists
, und ignoriert die Groß- / Kleinschreibung, indem eine Kopie vons
an angehängt wirds
. Die Verneinung ist damit erledigtnot
, was zwar langwierig aussieht, aber ich sehe nicht besser. Das ist die gleiche Länge:Sie können die Parens nicht weglassen, sonst interpretiert Python den Ausdruck als verkettete Ungleichung der Form mit drei Werten
_ in _ < _
.Python 3.5 sollte 33 Bytes über Set-Konvertierungen zulassen, obwohl ich es jetzt nicht testen kann.
quelle
Pyke, 7 Bytes
Erläuterung:
quelle
JavaScript ES6,
4140 BytesNimmt den gesamten String als Argument. Ich kann keine Bytes speichern, indem ich zwei verschiedene Argumente akzeptiere, weil dann meine Antwort mit der anderen ES6-Antwort verschmelzen würde :(
quelle
not in
.R, 26 Bytes
x ist der String, y ist der Buchstabe, das T im Aufruf von grepl unterscheidet nicht zwischen Groß- und Kleinschreibung.
quelle
Jolf,
67 BytesDamit. Viele. Sixes. SMS? Nun, versuchen Sie es trotzdem hier . Ersetzen
⌂
durch\x7f
.quelle
Ruby, 17 Bytes
quelle
Batch, 53 Bytes
Akzeptiert Eingaben als zwei Befehlszeilenargumente. (Geben Sie bei Bedarf das zweite Argument an.) Gibt 1 bei Erfolg aus, nichts, wenn das erste Argument (unempfindlich) im zweiten gefunden wird.
quelle
Mathematica,
3332 BytesIch liebe es, wenn ## verwendet werden kann. Eingabe ist String, dann char.
Oder eine Version, bei der zwischen Groß- und Kleinschreibung unterschieden wird: (11 Bytes :)
Ja, nur eine eingebaute.
quelle