Parole legnose, parole piccole


35

Nota: ci sono alcune parole maleducate in questa domanda.

C'è un puzzle implicito in questo classico schizzo di Monty Python (puoi anche preparare lo script online).

Varie frasi sono descritte come "legnose" o "tinny" e una è descritta come "PVC".

Data una frase, rispondi con il suo tipo in base ai seguenti elenchi:

woody:

gone
sausage
seemly
prodding
vacuum
bound
vole
caribou
intercourse
pert
thighs
botty
erogenous zone
ocelot
wasp
yowling

tinny:

litter bin
newspaper
antelope
recidivist
tit
simpkins

PVC:

leap

Regole

  • Se l'input appartiene a una delle liste sopra, l'output dovrebbe essere woody, tinnyo PVC, di conseguenza.
  • Tutti gli input sono in minuscolo.
  • Qualsiasi comportamento è accettabile per le frasi che non sono elencate sopra.
  • Vince il minor numero di byte nella risposta.

@AJFaraday Consiglierei di passare un po 'di tempo sul sito e di rispondere ad alcune domande prima di intraprendere il difficile compito di scrivere sfide. Quando ti senti pronto, usa la sandbox , almeno per le tue prime sfide e anche per sfide non banali.
Adám,

27
Questa raccomandazione non mi piace per niente! Continua a pubblicare problemi, anche se non ti piace rispondere. Ovviamente è bello guardare altre sfide per avere un'idea del sito, e raccomando anche Sandbox, ma per favore continua a scrivere sfide! :)
Stewie Griffin

5
Quindi, dobbiamo applicare la logica a uno schizzo di Monty Python? ...eccellente!
BruceWayne,

@BruceWayne è proprio quello che stiamo facendo.
AJFaraday

You may choose how to deal (or ignore) with casing in input and output.Per chiarire, questo significa che possiamo aspettarci che l'input sia in maiuscolo?
Οuroso

Risposte:


4

Stax , 30 25 byte

ï═H♣║GÇX→ΩM+@╢^j╬♪►╨╝ô╤c\

Esegui ed esegui il debug

La rappresentazione ascii commentata è questa. Non ho inventato questo algoritmo. È sfacciatamente strappato via dalla soluzione di pitone di Jonathan Allen .

9@                  10th character, modularly indexed
`#!z"pi0$L+%v9`X    store "tinny pvc woody" in the x register
3(                  keep only the first 3 characters ("tin")
#                   how many times the 10th char occurs in tin? (a)
y.eaI               index of "ea" in the input or -1 (b)
+                   a + b (one of -1, 0, or 1)
xj@                 modularly indexed word in x

Esegui questo


Questa risposta è OK, ma il compressore letterale di stringa è difettoso, a volte produce un risultato lungo di 5 caratteri (se si include il `, 7) per stringhe lunghe di 4 caratteri.
Weijun Zhou

La compressione non è sempre garantita per produrre un risultato più piccolo. Solitamente solo per stringhe inglesi. Questo non è un bug. Se hai un caso in cui una stringa tra virgolette doppie è più piccola, usa invece quella.
ricorsivo il

Ho pensato che fosse come quello di Jelly che trova sempre la rappresentazione più breve (forse la descrizione dovrebbe essere riformulata allora?)
Weijun Zhou

Non importa. Penso che dire can help yousia un po 'confuso ma logicamente va bene.
Weijun Zhou

Sì, la formulazione è in qualche modo fuorviante.
ricorsivo

35

Python 2 , 99 73 65 64 63 byte

lambda s:'PVC'*('ea'in s)or'wtoiondnyy'[s[-2:]in'instperit'::2]

Provalo online!

Alternative anche con 63 byte:

lambda s:'PVC'*('ea'in s)or'wtoiondnyy'[s[-6::5]in'dtenmsr'::2]
lambda s:'PVC'*('ea'in s)or'wtoiondnyy'[s[::5]in'lrinaosit'::2]

23
Eseguito l'upgrade a causa dell'utilizzo di Python per risolvere una sfida di Monty Python.
Brain Guider

10
@AnderBiguri, ti preghiamo di esprimere il tuo voto in base alla soluzione stessa piuttosto che alla lingua utilizzata.
Shaggy

24
@Shaggy AFAIK la scelta della lingua è una delle parti divertenti di PPCG! Mi piace la soluzione, perché è in Python . Abbiamo già i byte per vedere quale "vince"
Brain Guider

2
Sì, i voti in codegolf dovrebbero essere meramente per l'approccio considerato migliore o più creativo poiché il vincitore è determinato diversamente. Inoltre sarebbe noioso se tutti usassero speciali linguaggi codegolf invece di diventare creativi con altri più comuni
Gimli

5
Sono d'accordo, ci possono essere molti motivi per apprezzare una risposta particolare. Ma anche se le persone sono così eccitate dal gioco di parole "Python for Monty Python", è ancora triste vedere che gli utenti non si preoccupano di scorrere un po 'verso il basso e mostrano un certo apprezzamento per un'altra risposta di Python che è in realtà più non convenzionale e persino un un po 'più breve ...
Kirill L.

15

Python 2 , 62 byte

lambda n:'wtPoiVonCdn yy'[hash(n)%97%78%28%15%2+('ea'in n)::3]

Provalo online!

Come?

Questa presentazione utilizza il fatto che la hashfunzione è stabile per le stringhe in Python 2. Ogni input valido ha un output valido. Il modulo ripetuto a forza bruta %97%78%28%15%2ritorna 1per tutte le parole sottili e in PVC e 0per le parole legnose . Aggiungendo il valore di ('ea' in n)esso, otteniamo 2invece che 1per l'input "salto". Ecco una tabella di tutti i valori:

+----------------+----------------------+----------------+-------------+-------+
| word           | hash                 | %97%78%28%15%2 | +('ea'in n) | type  |
+----------------+----------------------+----------------+-------------+-------+
| leap           | 5971033325577305778  | 1              | 2           | PVC   |
+----------------+----------------------+----------------+-------------+-------+
| litter bin     | 2393495108601941061  | 1              | 1           | tinny |
| newspaper      | 1961680444266253688  | 1              | 1           | tinny |
| antelope       | -2930683648135325182 | 1              | 1           | tinny |
| recidivist     | -1480015990384891890 | 1              | 1           | tinny |
| tit            | -1495230934635649112 | 1              | 1           | tinny |
| simpkins       | 672871834662484926   | 1              | 1           | tinny |
+----------------+----------------------+----------------+-------------+-------+
| gone           | 3644900746337488769  | 0              | 0           | woody |
| sausage        | 4880706293475915938  | 0              | 0           | woody |
| seemly         | -8112698809316686755 | 0              | 0           | woody |
| prodding       | 7325980211772477495  | 0              | 0           | woody |
| vacuum         | -5283515051184812457 | 0              | 0           | woody |
| bound          | -6522768127315073267 | 0              | 0           | woody |
| vole           | -7823607590901614336 | 0              | 0           | woody |
| caribou        | -3644594841083815940 | 0              | 0           | woody |
| intercourse    | 2499732157679168166  | 0              | 0           | woody |
| pert           | 4142553773863848247  | 0              | 0           | woody |
| thighs         | -3490317966011085195 | 0              | 0           | woody |
| botty          | -6522767127163072681 | 0              | 0           | woody |
| erogenous zone | 7046120593231489339  | 0              | 0           | woody |
| ocelot         | -6961879712146820842 | 0              | 0           | woody |
| wasp           | -3668927459619339511 | 0              | 0           | woody |
| yowling        | 6823632481520320220  | 0              | 0           | woody |
+----------------+----------------------+----------------+-------------+-------+

Il tipo da restituire ora viene estratto dalla stringa 'wtPoiVonCdn yy'prendendo ogni terzo carattere, a partire dall'indice calcolato.


10

JavaScript (ES6), Chrome / Edge, 54 byte

Poiché il comportamento di parseInt()input di grandi dimensioni con una radix di 36 dipende dall'implementazione , questo non funziona con SpiderMonkey (Firefox).

s=>[,'PVC',,'Tinny'][parseInt(s+383,36)%69%7]||'Woody'

Provalo online!

Come?

La funzione hash restituisce 3 per le parole Tinny, 1 per PVC e 0 , 4 , 5 o 6 per le parole Woody. Le parole contrassegnate con un asterisco vengono troncate implicitamente perché lo spazio è considerato un carattere non valido da parseInt () .

word           | +383           | base 36 -> decimal    | mod 69 | mod 7
---------------+----------------+-----------------------+--------+------
gone           | gone383        |           36318994131 |   54   |   5
sausage        | sausage383     |      2874302392811475 |   42   |   0
seemly         | seemly383      |        80120017777107 |    6   |   6
prodding       | prodding383    |     94214834629477200 |   12   |   5
vacuum         | vacuum383      |        88266035564499 |   60   |   4
bound          | bound383       |          916101808275 |    6   |   6
vole           | vole383        |           68967369939 |   39   |   4
caribou        | caribou383     |      1249086300450771 |   63   |   0
intercourse    | intercourse383 | 3.183324871563264e+21 |   11   |   4
pert           | pert383        |           55312791699 |   21   |   0
thighs         | thighs383      |        83184557510739 |    6   |   6
botty          | botty383       |          916052399571 |   63   |   0
erogenous zone | erogenous (*)  |        41664605989780 |    7   |   0
ocelot         | ocelot383      |        68678794158483 |   39   |   4
wasp           | wasp383        |           70309896339 |   63   |   0
yowling        | yowling383     |      3523299657958227 |   39   |   4
---------------+----------------+-----------------------+--------+------
litter bin     | litter (*)     |            1301413923 |   24   |   3
newspaper      | newspaper383   |   3081816298632183000 |    3   |   3
antelope       | antelope383    |     38980419895881940 |   24   |   3
recidivist     | recidivist383  | 129824740122576960000 |    3   |   3
tit            | tit383         |            1785109395 |   45   |   3
simpkins       | simpkins383    |    104264583727840850 |   24   |   3
---------------+----------------+-----------------------+--------+------
leap           | leap383        |           46576922259 |   57   |   1

Versione precedente, 59 57 byte

s=>['Woody','Tinny','PVC'][82178>>parseInt(s,35)%50%26&3]

Provalo online!

Come?

Di seguito sono riportati i diversi passaggi della funzione per ciascun ingresso. Il risultato del primo modulo è un'approssimazione all'interno della precisione dei numeri JS ed è matematicamente non valido per i rapporti .

input          | base-35 -> dec.   | %50 | %26 | 00000000010100000100000010
---------------+-------------------+-----+-----+---------------------------
gone           |            716219 |  19 |  19 |      00------------------>
sausage        |       52042888324 |  24 |  24 | 00----------------------->
seemly         |        1492249219 |  19 |  19 |      00------------------>
prodding       |     1659396207121 |  21 |  21 |    00-------------------->
vacuum         |        1643736697 |  47 |  21 |    00-------------------->
bound          |          17573443 |  43 |  17 |        00---------------->
vole           |           1359274 |  24 |  24 | 00----------------------->
caribou        |       22625709220 |  20 |  20 |     00------------------->
intercourse    | 51532867489988450 |  48 |  22 |   00--------------------->
pert           |           1089999 |  49 |  23 |  00---------------------->
thighs         |        1549436973 |  23 |  23 |  00---------------------->
botty          |          17572449 |  49 |  23 |  00---------------------->
erogenous zone |    33308397234728 |  28 |   2 |                       00->
ocelot         |        1279159344 |  44 |  18 |       00----------------->
wasp           |           1385255 |   5 |   5 |                    00---->
yowling        |       63810499496 |  46 |  20 |     00------------------->
litter bin     |        1131250042 |  42 |  16 |         01--------------->
newspaper      |    52754217228642 |  42 |  16 |         01--------------->
antelope       |      687218151914 |  14 |  14 |           01------------->
recidivist     |  2160354371100934 |  34 |   8 |                 01------->
tit            |             36184 |  34 |   8 |                 01------->
simpkins       |     1835782971008 |   8 |   8 |                 01------->
leap           |            917900 |   0 |   0 |                         10


9

Java 8, 81 80 67 byte

s->s.charAt(2)<98?"PVC":s.matches(".*(.p.|is?t).*")?"tinny":"woody"

Regex dalla risposta Retina di @MatrinEnder .

Provalo online.

Risposta originale: 81 80 byte

s->"anetisilire".contains(s.substring(0,2))?"tinny":s.charAt(2)<98?"PVC":"woody"

Provalo online.

Spiegazione:

s->                  // Method with String as both parameter and return-type
  "anetisilire".contains(s.substring(0,2))?
                     //  If the first two letters of the input are present in "anetisilire"
    "tinny"          //   Output "tinny"
   :s.charAt(2)<98?  //  Else-if the third character of the input is an 'a'
    "PVC"            //   Output "PVC"
   :                 //  Else:
    "woody"          //   Output "woody"

Spiegazione aggiuntiva:

litter bin:  anetisi(li)re
newspaper:   a(ne)tisilire
antelope:    (an)etisilire
recidivist:  anetisili(re)
tit:         ane(ti)silire
simpkins:    aneti(si)lire
  1. Nessuna delle prime due lettere delle woodyparole è presente in questa stringa sopra, né leproviene da leap.
  2. Nessuna delle woodyparole ha un acome terza lettera, in modo che viene utilizzato per arrivare leapa PVCse non è una tinnyparola.
  3. Tutto il resto è una parola dalla woodylista.

2
È davvero bello poter leggere questo tipo di pensiero per la risoluzione dei problemi :)
AJFaraday

6

Haskell , 61 byte

f(a:b:_)|b=='i'||elem a"ran"="tinny"|a=='l'="PVC"|1>0="woody"

Provalo online!

Usa questa logica trovata a mano:

  • Parole con seconda lettera io prima lettera r, ao nsonotinny
  • Qualsiasi altra parola che inizia con l( leap) èPVC
  • Qualcos'altro è woody

Lynn salvò un byte controllando leapcon la sua prima lettera.


1
Bello! È possibile salvare un byte rilevando "leap"con |a=='l'="PVC".
Lynn

5

QuadS , 34 32 byte

Usa spudoratamente il sistema di Martin Ender , incluso il regex del golfista regex di Peter Norvig .

⊃⍵
ea
.p.|is?t
$
PVC
tinny
woody

Provalo online!

⊃⍵ scegli la prima occorrenza di

ea "ea"
.p.|is?t "p" circondato da lettere OPPURE "i" e "t" con una "s" opzionale tra loro
$ fine dell'input

... ma sostituendo le partite con la corrispondente delle seguenti:

PVC
tinny
woody


La funzione Dyalog APL a 43 byte equivalente è:

'ea' '.p.|is?t' '$'S'PVC' 'tinny' 'woody'

Prova tutti i casi online!


5

C (gcc) , 81 byte

h;f(char*s){puts(strchr("HzYfPW",h=*s^s[1]<<2&127)?"Tinny":h<120?"Woody":"PVC");}

Provalo online!

Il primo ordine del giorno era trovare una funzione hash che separasse le parole nelle loro categorie. Dopo aver armeggiato un po ', mi sono imbattuto in (s[0] ^ (s[1] << 2)) & 0x7f, dove lo 0x7f è ovviamente lì per portarlo a livelli ASCII stampabili. Ciò ha prodotto le seguenti informazioni (le tabelle sono ordinate, ma non le stringhe risultanti):

Woody:
----
erogenous zone  - 45
prodding        8 56
yowling         E 69
vole            J 74
intercourse     Q 81
thighs          T 84
gone            [ 91
botty           ^ 94
bound           ^ 94
ocelot          c 99
pert            d 100
caribou         g 103
seemly          g 103
vacuum          r 114
wasp            s 115
sausage         w 119

[wg8r^JgQdT^-csE

Tinny:
----
litter bin      H 72
tit             P 80
simpkins        W 87
antelope        Y 89
recidivist      f 102
newspaper       z 122

HzYfPW

PVC:
----
leap            x 120

x

Le collisioni di hash non contano, poiché sono confidate nella stessa categoria. Dobbiamo solo verificare se l'hash risultante è nella stringa di hash Tinny ("HzYfPW"), poiché gli hash Woody sono tutti al di sotto dell'hash PVC (120). Se 120 o superiore, e non una parola Tinny, deve essere PVC. Se non una parola Tinny, e l'hash è inferiore a 120, allora deve essere una buona parola legnosa.


4

x86 codice macchina a 32 bit, 39 byte

hexdump:

69 01 47 6f 61 2c c7 02 50 56 43 00 3a c4 74 16
c7 02 77 6f 6f 64 85 c0 78 06 c7 02 74 69 6e 6e
66 c7 42 04 79 00 c3

La funzione hash è la moltiplicazione per un numero "magico" 0x2c616f47. Ci sono solo 6 numeri che possono essere usati con questo codice.

Prima di tutto, scrive PVCsull'output. Questo verrà sovrascritto, se necessario.

Dopo l'hashing, controlla la parola PVC; il segno di spunta è al = ah- l'ho scelto perché è una piccola istruzione a 2 byte. Quindi scrive woodo tinn, a seconda del segno del risultato con hash. Quindi scrive y.

Codice dell'Assemblea:

    imul eax, [ecx], 0x2c616f47;
    mov dword ptr [edx], 'CVP';
    cmp al, ah;
    je done;
    mov dword ptr [edx], 'doow';
    test eax, eax;
    js skip;
    mov dword ptr [edx], 'nnit';
skip:
    mov word ptr [edx + 4], 'y';
done:
    ret;

4

Gelatina ,  27  26 byte

⁵ịe“Ṗµ»_⁼“ḣG»$ị“©LẈḊ¶$Ḍ»Ḳ¤

Un collegamento monadico che accetta e restituisce elenchi di caratteri.

Provalo online!

Come?

⁵ịe“Ṗµ»_⁼“ḣG»$ị“©LẈḊ¶$Ḍ»Ḳ¤ - Link: list of characters, W   e.g. "gone"  "leap"  "newspaper"
⁵                          - literal ten                  10
 ị                         - index into (1-based & modular)     'o'     'e'     'n'
   “Ṗµ»                    - compression of characters    "int"
  e                        - exists in?                          0       0       1
              $            - last two links as a monad
          “ḣG»             -   compression of characters  "leap"
         ⁼                 -   equal?                            0       1       0
        _                  - subtract                            0      -1       1
                         ¤ - nilad followed by link(s) as a nilad:
                “©LẈḊ¶$Ḍ»  -   compression of characters  "tinny PVC woody"
                         Ḳ -   split at spaces            ["tinny","PVC","woody"]
               ị           - index into (1-based & modular)     "woody" "PVC"   "tinny"


3

Sporco , 73 57 54 byte

⇖'le'⇗≐∀⭦)Ẃ'nar'⇗{=]}⭨'i'=]'woody'‼␛['tinny'‼␛('PVC'‼␛

Provalo online!

Ha spiegato:

Per una versione precedente simile (la aggiornerò quando smetto di giocare a golf)

␛‼'CVP'⇨⇖'leap'⇗≡⊭◌⬅Ẃ'nar'⇗{=]}1ẁ'i'=]'woody'‼␛['tinny'‼␛

Il corpo di questo è composto da:

⇖            put the input into the left stack
 'leap'      push the string "leap"
       ⇗     put that string into the right stack
        ≡    are the left and right stacks equal
         ⊭   logically negate
          ◌  skip next instruction if true
           ⬅ change direction to leftwards

Se finiamo per andare a sinistra, allora abbiamo:

       ⇨⇖'leap'⇗≡⊭◌ does stuff to the stacks, but isn't relevant
  'CVP'              push the string "PVC" (reversed, because we're going left)
 ‼                   print the string on the main stack
␛                    exit the program (this should wrap into the other exit, but that isn't working yet)

Altrimenti, questo controlla se la stringa inizia con uno qualsiasi di "nar":

Ẃ           wipe the right stack
 'nar'      push the string "nar"
       ⇗    move string to right stack
        {
         =  compare the top of the left and right stacks
          ] goto matching bracket if true
        }   consuming loop while the right stack is true

Quindi controlliamo se la seconda lettera è "i":

1        push the number 1
 ẁ       drop ^ number of elements off of the left stack
  'i'    push "i"
     =   are the top of the left and middle stacks equal
       ] goto matching bracket if true

Se cadono tutti, ci imbattiamo in

'woody'   push the string "woody"
       ‼  print the string on the main stack
        ␛ exit the program

Se finissimo per saltare, ci avvolgiamo

[          matching bracket for the goto
 'tinny'   push the string "tinny"
        ‼  print the string on the main stack
         ␛ exit the program

3

C # 97 byte

string t(string w)=>w[0]!='p'&new[]{10,9,8,3}.Contains(w.Length)?"tinny":w[0]=='l'?"pvc":"woody";

Sono andato alla ricerca di uno schema nella lunghezza delle stringhe e ho scoperto che sono unici tranne per le lunghezze 4 e 8. Quindi ho casi speciali quelli guardando i primi caratteri. Vabbè, è ancora più breve di alcune risposte. :)


1
Sai, quando Martin Ender ha trovato una semplice regola per questi elenchi, praticamente ogni risposta ha implementato la stessa soluzione, in un modo o nell'altro. È bello vedere un approccio originale. :)
AJFaraday,

Grazie per il feedback. :) Non ho letto altre soluzioni prima di provare la mia .. forse c'è ancora una soluzione più elegante ancora da scoprire .. Vorrei tanto che avessero tutte lunghezze uniche, quindi questa sarebbe la soluzione.
sottovento il

2
string t(string w)=>può essere giusto w=>. 'p'Penso che puoi convertire e altri personaggi nelle loro rappresentazioni int. Puoi rimuovere il punto e virgola finale
TheLethalCoder

3

Python , 59 byte

lambda w:"wtPoiVonCdn yy"[(w*4)[9]in"tin"or(w[2]<"b")*2::3]

Provalo online!

Utilizza l'indicizzazione dalla risposta Python di ovs ma una funzione di scelta più semplice e più breve:

Se la decima lettera della parola, wcon wrapping ( (w*4)[9]- dove si w*4ripete wquattro volte) è una lettera nella parola tin ( in"tin"), allora la parola è tinny , altrimenti se la terza lettera ( w[2]) è una a ( <'b') allora la parola è PVC altrimenti la parola è legnosa .

... questo 59 fa lo stesso lavoro:

lambda w:"wtPoiVonCdn yy"[[(w*4)[9]in"tin",2][w[2]<"b"]::3]

2

C, 107 byte

k;f(char*s){for(k=0;*s;)k+=*s++;k%=100;puts(k-18?(k-5)*(k-81)*(k-56)*(k-78)*(k-37)?"woody":"tinny":"PVC");}

Provalo online!


2

Lotto, 145 byte

@set/ps=
@if %s%==leap echo PVC&exit/b
@for %%s in (a n r)do @if %s:~,1%==%%s echo tinny&exit/b
@if %s:~1,1%==i echo tinny&exit/b
@echo woody

Accetta input su STDIN. Spiegazione: Dopo aver controllato leap, parole tinny o inizia con una delle lettere a, no ro la loro seconda lettera è i.


2

CJam , 35 byte

1b_856%338<\418=-"woodytinnyPVC"5/=

Provalo online!

Dimenticai completamente di aver avviato una ricerca della forza bruta per brevi espressioni per tagliare le corde legnose e metalliche in due classi. Ho appena trovato la finestra della console in cui è stata eseguita la ricerca e si scopre che in realtà ha trovato qualcosa ...

Spiegazione

1b     e# Sum the code points of the input string.
       e# The result is unique for each input, except "pert" and "wasp" which
       e# both sum to 443. But they're both woody, so that's fine.
_      e# Duplicate.
856%   e# Take the sum modulo 856.
338<   e# Check whether the result is less than 338. That's true for all
       e# tinny words.
\      e# Swap with the other copy of the sum.
418=   e# Check whether the sum is equal to 418, which identifies "leap".
-      e# Subtract. Gives -1 for "leap", 1 for tinny words and 0 for woody words.
"woodytinnyPVC"5/
       e# Create the list ["woody" "tinny" "PVC"].
       e# Select the correct string.

1

Excel, 81 byte

=IF(ISNUMBER(FIND(LEFT(A1,2),"anetisilire")),"tinny",IF(A1="leap","PVC","woody"))

Utilizzando il metodo "anetisilire".



1

JavaScript, 60 , 50

EDIT Ho visto tutte le altre risposte regex. Immagino di essere solo cieco. Comunque, eccone uno che usa lo stesso regex

i=="leap"?"PVC":/.p.|is*t/.test(i)?"tinny":"woody"

Inoltre, ora, batte l'altra risposta JS

Frammento:

let test = i => i=="leap"?"PVC":/.p.|is*t/.test(i)?"tinny":"woody"

let woody = `gone
sausage
seemly
prodding
vacuum
bound
vole
caribou
intercourse
pert
thighs
botty
erogenous zone
ocelot
wasp
yowling`;
console.log("THESE SHOULD BE woody");
woody.split("\n").forEach(el => console.log(test(el)));
let tinny = `litter bin
newspaper
antelope
recidivist
tit
simpkins`;
console.log("THESE SHOULD BE tinny");
tinny.split("\n").forEach(el => console.log(test(el)));
console.log("THIS SHOULD BE PVC");
console.log(test("leap"));

Vecchia risposta

Non ne ho ancora visto nessuno con regex, quindi ho pensato di provarlo

i=="leap"?"PVC":/[gyuz]|[or][tl]|as/.test(i)?"woody":"tinny"

Non sono sicuro se questo conta come 60 o più perché non ho incluso una dichiarazione di ritorno. Aggiungerò uno snippet quando salgo sul mio computer

Modifica: frammento

let test = i => i=="leap"?"PVC":/[gyuz]|[or][tl]|as/.test(i)?"woody":"tinny"

let woody = `gone
sausage
seemly
prodding
vacuum
bound
vole
caribou
intercourse
pert
thighs
botty
erogenous zone
ocelot
wasp
yowling`;
console.log("THESE SHOULD BE woody");
woody.split("\n").forEach(el => console.log(test(el)));
let tinny = `litter bin
newspaper
antelope
recidivist
tit
simpkins`;
console.log("THESE SHOULD BE tinny");
tinny.split("\n").forEach(el => console.log(test(el)));
console.log("THIS SHOULD BE PVC");
console.log(test("leap"));

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.