Podany ciąg znaków zwraca, czy ciąg jest podciągiem kodu źródłowego programu.
Obowiązują standardowe zasady quine, co oznacza, że nie możesz odczytać własnego kodu źródłowego. Gwarantowana długość wejścia jest mniejsza lub równa długości programu. Możesz zwrócić dowolne dwie różne wartości, niekoniecznie prawdziwe i fałszywe. Możesz również przesłać funkcję zamiast pełnego programu.
To jest golf golfowy, więc wygrywa najkrótszy kod!
Przykład
Jeśli twój kod źródłowy to print(input() = False)
, powinien zwracać wartość True dla, nt(i
ale False dla tupn
.
code-golf
decision-problem
quine
Cairney Coheringaahing
źródło
źródło
Odpowiedzi:
Python 2 , 41 bajtów
Wypróbuj online!
źródło
JavaScript , 25 bajtów
Wypróbuj online!
Osobiście nie jestem fanem tego, ale jest to dozwolone .
Alternatywne (nieprawidłowe?) Rozwiązanie, 19 bajtów
Pobiera to dane wejściowe jako wyrażenie regularne.
Wypróbuj online!
źródło
(Node.js)
? Czy to też nie działa w przeglądarkach?Java 8,
124112 bajtów (funkcja)Wypróbuj tutaj.
Oto pełny program (aby zobaczyć jeden z powodów, dla których funkcje są dozwolone w PPCG, ponieważ niektóre języki, takie jak Java, wymagają bardzo pełnego obowiązkowego kodu pełnego dla pełnych programów).
Java 8,
226214 bajtów (pełny program)Wypróbuj tutaj.
Wyjaśnienie:
String s
Zawiera kod źródłowy niesformatowany.%s
służy do wprowadzania tego ciągu do siebie za pomocąs.format(...)
.%c
,%1$c
i34
służą do formatowania podwójnych cudzysłowów.s.format(s,34,s)
łączy to wszystko.A następnie
.contains(...)
służy do sprawdzenia, czy ten kod źródłowy zawiera dane wejściowe.źródło
Bash,
43, 28 bajtówspróbuj online
źródło
typeset
formatuje to w ten sposób AFAICT. Wypróbuj online!$1
zrobić?Haskell , 92 bajty
Wypróbuj online! Oczywiste rozszerzenie standardowego quine. Pozbycie się importu byłoby przyjemne, ale wątpię, czy
isInfixOf
można go obliczyć w krótszej ilości bajtów.źródło
Wolfram Language (Mathematica) , 33 bajty
Wypróbuj online!
źródło
QBIC , 28 bajtów
Wyświetla 0, jeśli dane wejściowe nie są podłańcuchem źródła, a X w przeciwnym razie gdzie X jest (pierwszym) indeksem podłańcucha.
Wyjaśnienie
#
definiuje literał łańcucha w QBIC i przypisuje go do pierwszej dostępnej zmiennej łańcucha. To jestB$
w tym programie, ponieważA$
jest już zajęty przez;
(przeczytaj ciąg z linii cmd). Następnie wszystko, aż do ogranicznika, jest wprowadzane do literału; ogranicznik jest znakiem wstecz - co sprawia, że jest to jedyny znak ASCII, którego nie można włączyć w ciągach znaków. W tym przypadku QBIC nie potrzebuje znaku wstecz, ponieważ literał jest kończony na końcu kodu przez funkcję automatycznego zamykania QBIC. Aby uzyskać więcej informacji na temat literałów QBIC, zobacz wątek Prezentacja .źródło
A
w tym kontekście?B
i wyjaśnienie zostało dodane.Galaretka , 10 bajtów
Wypróbuj online!
Jak to działa
źródło
Julia, 72 bajty
Teraz rozumiem, co ludzie mają na myśli, gdy mówią, że problemy z quine to tylko wariacje na temat klasycznego quine.
Wyjaśnienie
źródło
Perl 5, 60 + 2 (-pl) bajtów
spróbuj online
źródło
05AB1E , 17 bajtów
Modyfikacja domyślnego quine
0"D34çý"D34çý
przez dodanieIå
.Wypróbuj online.
Wyjaśnienie:
źródło