Lipogram to blok słów, który pomija określony symbol. W tej chwili unikam piątego symbolu 26, który zwykle się pojawia. Powinieneś już wiedzieć, co pomijam. Jeśli nie, spójrz na „lipogram”, a dowiesz się.
Twoje zadanie
Z char, spacją i następującym ciągiem znaków (w tym mogą pojawiać się spacje; tylko znaki ASCII 32-126) na wejściu, wypisuje fałsz, jeśli ten char jest w ciągu wejściowym, prawda, jeśli nie. Znak, którego szukasz, zawsze będzie pasował do dwóch zakresów: „A” do „Z” lub „a” do „z” (ASCII 65-90, 97-122). Nie rozróżniaj wielkich i małych liter. Nie martw się również o znaki puste i interpunkcyjne. Zarówno programy, jak i funkcje spełniają. Możesz także podzielić znak wejściowy i ciąg znaków na dwa argumenty dla programów lub funkcji, a ciąg znaków jako pierwszy argument jest w porządku.
Ilustracje
Prawda
e This is a lipogram.
a You need to consider other letters too.
E Capitals also count.
Falsy
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.
Wersja bez lipogramu
Lipogram to seria słów, które pomijają literę. Pominąłem literę „e” powyżej.
Twoim zadaniem jest pobranie znaku i łańcucha (który może zawierać spacje) jako danych wejściowych, oddzielonych spacją lub znakiem nowej linii i wygenerowanie fałszowania, jeśli znak znajduje się w łańcuchu, a tak naprawdę. Możesz założyć, że łańcuch składa się wyłącznie z drukowalnych znaków ASCII (kody znaków 32-126). Znak zawsze będzie w alfabecie angielskim i nie ma różnicy między małymi a wielkimi literami. Postać nie będzie spacją ani symbolem. Możesz napisać program lub funkcję. W obu przypadkach można traktować znak i ciąg jako osobne argumenty, a ciąg może być na pierwszym miejscu.
źródło
Odpowiedzi:
C, 42 bajty
źródło
JavaScript ES6
342623 bajtówogolono 8 bajtów dzięki @ MartinBüttner
źródło
/i
dotyczy\1
!05AB1E ,
7643 bajtyKod:
Wyjaśnienie:
Wypróbuj online!
Prawda jest wtedy, gdy wypisywana jest bieżąca litera. Falsy występuje wtedy, gdy nic nie jest wyprowadzane.
źródło
-
skutecznie działa operacja uzupełniająca ?TeaScript,
53 bajtyAha \ o /! Zapomniałem o niejawnych danych wejściowych! TeaScript automatycznie wstawi
x.
(dane wejściowe) na początku. Następnie mogę sprawdzić, czy ma inne dane wejściowe (w zmiennejµ
), a więc NIE (N
). Myślę, że najlepszą zaletą TeaScript jest jego domyślny wkładWypróbuj online
Wyjaśnienie
źródło
Bash,
1611 bajtów-i
jest flaga bez rozróżniania wielkości liter,-v
odwraca (sprawdza niezgodność).Znak musi być podany jako argument wiersza poleceń, a ciąg testowy na STDIN.
Zmniejszony o 5 bajtów z pomocą @ DigitalTrauma !
Przykładowe przebiegi:
źródło
grep -iv $1
. Nie widzę nic złego w mieszaniu STDIN i argumentów wiersza poleceń jako metod wprowadzania - zrobiłem to wcześniej - ale być może istnieje meta precedens, za którym tęskniłem ...^D
użytkowników do skomentowania tej odpowiedzi? @Downgoat - jesteś tam? ;-)Japt,
1264 bajtówPrzetestuj online!
Odpowiedź Teago @ Downgoat przypomniała mi, że Japt ma dokładnie taką samą wbudowaną funkcję, odcinając ostatnie dwa bajty.
Jak to działa
źródło
CJam, 6 bajtów
Wypróbuj online! lel
Wyjaśnienie
źródło
JavaScript (ES6), 29 bajtów
źródło
c=>s=>!RegExp(c,"i").test(s)
, oszczędzając bajt.c=>s=>!s.match(c,'i')
jest 21. :)match
bierze tylko jeden argument. Drugi argument rejestruje ostrzeżenie konsoli w przeglądarce Firefox 39 lub nowszej i nie działa w ogóle w przeglądarce Firefox 47.Python 3, 36
Zignorowanie przypadku jest zaskakująco drogie.
Przyjmuje argumenty jako (char, string)
źródło
Pyth,
87 bajtówWyjaśnienie
Dzięki @FryAmTheEggman za informację, że mogę użyć
-
zamiast!}
Wypróbuj tutaj
źródło
O, 8 bajtów
Anonimowa funkcja, która pobiera znak i ciąg znaków.
Wypróbuj online.
Wyjaśnienie
źródło
Perl, 11 + 1 = 12 bajtów
Wymaga
-p
przełącznika i przyjmuje dane wejściowe jako$string\n$letter
Jak to działa:
źródło
<<<
.) (I używając normalnego STDIN (nie<<<
), dostaję 1, chyba że litera jest ostatnim znakiem w ciągu, ponieważ nie łamiesz litery .)printf "this is a lipogram\ne\n" | perl -pe'$_=lc!~lc<>'
zamiast tego.<<<
jest składnią bash.<<<
to kolejny sposób na przekazanie standardowego wejścia.Java, 63 bajty.
źródło
(s,c)->!s.matches("(?i:.*"+c+".*)")
które jest krótszeString
ichar
gdzieś.MATL , 5 bajtów
Wypróbuj online!
źródło
Poważnie, 6 bajtów
Wypróbuj online!
Pobiera dane wejściowe jako
'string'\n'char'
Wyjaśnienie:
źródło
,ù,ùìuY
działałoby? (To powinien być ja, który indeksuje, ale nie pamiętam, który to robi)Julia 0.3,
2220 bajtówuppercase
to długie słowo.Jak to działa
źródło
Siatkówka, 11
Nie jestem pewien, co w Retinie liczy się jako prawda / fałsz, spowoduje to wyświetlenie echa linii, jeśli jest to lipogram dla danego znaku i zwróci pusty ciąg, jeśli nie jest.
Będzie to również działać w przypadku wprowadzania wielowierszowego.
Wypróbuj online!
źródło
Minkolang 0,15 , 10 bajtów
Wypróbuj tutaj.
Wyjaśnienie
źródło
Rdza, 75 bajtów
Największy wynik oznacza, że wygrałem, prawda? > _ <
Wypróbuj tutaj.
źródło
Galaretka, 8 bajtów
Wypróbuj online!
Jak to działa
źródło
CJam, 10 bajtów
Anonimowa funkcja (blok), która pobiera znak (nie ciąg znaków!) I ciąg znaków.
Wypróbuj online.
Wyjaśnienie
źródło
PowerShell,
3632302925 bajtówKorzysta z
-notmatch
operatora i po prostu wyprowadzaTrue
lubFalse
.źródło
Python, 34 bajty
Sprawdza, czy znak
c
jest w ciągus
, ignorując wielkość liter, dodając zamienioną wielkość liters
dos
. Negacja jest zakończonanot
, co wygląda na długie, ale nie widzę lepiej. Jest to ta sama długość:Nie można pominąć parens, w przeciwnym razie Python interpretuje wyrażenie jako łańcuchową nierówność formy o trzech wartościach
_ in _ < _
.Python 3.5 powinien zezwalać na 33 bajty poprzez konwersje zestawów, chociaż nie mogę tego teraz przetestować.
źródło
Pyke, 7 bajtów
Wyjaśnienie:
źródło
JavaScript ES6,
4140 bajtówBierze cały ciąg jako argument. Nie mogę zapisać bajtów, akceptując dwa różne argumenty, ponieważ wtedy moja odpowiedź stopiłaby się z inną odpowiedzią ES6 :(
źródło
not in
.R, 26 bajtów
x jest łańcuchem, y jest literą, T w wywołaniu grepl powoduje, że wielkość liter nie jest uwzględniana.
źródło
Jolf,
67 bajtówWięc. Wiele. Szóstki. SMS? Cóż, spróbować go tutaj jednak. Wymień
⌂
się\x7f
.źródło
Rubinowy, 17 bajtów
źródło
Partia, 53 bajty
Akceptuje dane wejściowe jako dwa argumenty wiersza polecenia. (W razie potrzeby podaj drugi argument.) W przypadku powodzenia zwraca 1, nic, jeśli pierwszy argument (nieczułość) zostanie znaleziony w drugim.
źródło
Mathematica,
3332 bajtyUwielbiam, kiedy można użyć ##. Dane wejściowe to ciąg znaków, a następnie char.
Lub wersja z rozróżnianiem wielkości liter: (11 bajtów :)
Tak, tylko wbudowany.
źródło