To pytanie jest napisane, ponieważ „Thing Explainer” jest fajny do czytania i dał mi pomysł.
Napisz „rzeczy, które zmuszają komputer do robienia rzeczy”, które czyta / pobiera zestaw liter, cyfr i tym podobne "#%|?
i zwraca, True / 1
jeśli wszystkie słowa są częścią tego zestawu .
Jeśli wszystkie słowa nie są częścią tego zestawu, zwróć słowa, które nie były jego częścią.
Ta strona internetowa może być uznana za poprawną we wszystkich przypadkach. Reguły są napisane, aby były zgodne ze specyfikacjami na tej stronie.
Przykłady:
Prawda :
Kod powinien zwrócić prawdziwą wartość, jeśli cały tekst powyżej pierwszej linii poziomej zostanie wklejony jako dane wejściowe.
Poniższe wiersze powinny zwrócić prawdziwą wartość (dane wejściowe są oddzielone ###
)
This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true
Falsey :
W poniższych przykładach dane wejściowe i wyjściowe są oddzielone przez ***
. Różne przypadki testowe są oddzielone ###
.
This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false
Bardziej szczegółowe zasady:
- Możesz użyć tego do przetestowania swojego kodu.
- Kod nieinterpretowany jest przez kod jako spacja, z wyjątkiem słów podobnych
'wasn't'
. Zwracane słowa z apostrofamitrue
znajdują się na liście- Na przykład:
foo123bar
powinien powrócićfoo
ibar
, ponieważ nie są częścią listy i123
mogą być interpretowane jako spacje
- Na przykład:
- Dane wejściowe będą zawierać tylko punkty kodu ASCII do wydruku [10, 32-126].
- Słowa mogą zawierać małe i wielkie litery. Zobacz drugi przypadek testowy.
- Lista słów
- należy przyjmować jako dane wejściowe (STDIN, argument funkcji lub równoważny)
- można modyfikować (słowa można rozdzielić znakiem nowej linii, przecinkiem itp., a także możesz posortować listę)
- Pamiętaj, że nie możesz użyć tej listy (nie jest identyczna)
- Dane wyjściowe mogą być w dowolnym formacie
- Dane wyjściowe mogą być duże, małe lub mieszane (opcjonalnie)
- Na wyjściu nie będzie żadnych symboli
Dla przypomnienia, Jonathan Allan znalazł dziwny przypadek narożny: implementacja na XKCD faktycznie zignoruje wszelkie litery po apostrofie do następnego non-[AZ] [az] ['] - na przykład find's found
i find'qazxswedc found'
oba nie zwracają niczego, podczas gdy find'qazx.swedc found
zwraca swedc
.
Możesz wybrać, czy chcesz nic nie zwracać find'qazxswedc found'
, czy zwrócić qazxswedc
. Powrót qazx, swedc
do find'qazx.swedc
jest również OK.
Boolean
lub Array<String>
, czy dozwolone byłoby zwracanie pustej tablicy / listy?
1
. Puste wyjście jest niedopuszczalne.
find'qazxswedc
danych wejściowych. Czy my, czy nie, powinniśmy rozdzielać apostrofy? Na przykład isn't
zwraca true
(jest na liście), ale isn
zwraca isn
, ponieważ nie ma jej na liście. Z tej logiki wybrałem „nie podzielaj się apostrofami”, a zatem find'qazxswedc found
powraca find'qazxswedc
.