우디 단어, 작은 단어


35

노트 : 이 질문에는 무례한 단어가 있습니다.

고전적인 Monty Python 스케치 에는 암시적인 퍼즐이 있습니다 ( 스크립트를 온라인으로 준비 할 수도 있습니다).

다양한 문구는 '우디'또는 '소음'으로 설명되고, 다른 문구는 'PVC'로 설명됩니다.

문구가 주어지면 다음 목록에 따라 해당 유형으로 응답하십시오.

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

규칙

  • 상기 입력이 상기리스트 중 하나에 속하면, 출력은이어야한다 woody, tinny또는 PVC적절.
  • 모든 입력은 소문자입니다.
  • 위에 나열되지 않은 문구에는 모든 동작이 허용됩니다.
  • 대답에서 가장 적은 바이트가 이깁니다.

@AJFaraday 저는 어려운 글을 쓰는 어려운 과제를 시작하기 전에 사이트에서 시간을 보내고 몇 가지 질문에 대답하는 것이 좋습니다. 준비가되었다고 생각되면 적어도 처음 몇 가지 도전과 사소한 문제에도 샌드 박스를 사용 하십시오 .
Adám

27
나는 그 추천을 전혀 좋아하지 않는다! 답변이 마음에 들지 않더라도 계속 도전 과제를 게시하십시오. 물론 사이트의 느낌을 얻기 위해 다른 도전 과제를 살펴 보는 것도 좋으며, 샌드 박스도 추천하지만 계속 도전 과제를 작성하십시오! :)
Stewie Griffin

5
그럼 우리는 Monty Python 스케치에 논리를 적용할까요? ...우수한!
BruceWayne

@BruceWayne 그것은 우리가하고있는 일입니다.
AJFaraday

You may choose how to deal (or ignore) with casing in input and output.명확히하기 위해 입력이 대문자로 예상 될 수 있습니까?
OUurous

답변:


4

Stax , 30 25 바이트

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

실행 및 디버깅

주석이 달린 ascii 표현은 이것입니다. 나는이 알고리즘을 발명하지 않았다. Jonathan Allen의 python 솔루션을 뻔뻔스럽게 찢어 버렸습니다 .

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

이것을 실행


이 대답은 괜찮지 만 문자열 리터럴 압축기는 버그가 있지만 때로는 4 자 긴 문자열에 대해 5 자 긴 결과 (`, 7을 포함하는 경우)를 생성합니다.
Weijun Zhou

압축이 항상 더 작은 결과를 생성하는 것은 아닙니다. 보통 영어 문자열에만 해당됩니다. 그것은 버그가 아닙니다. 큰 따옴표로 묶인 문자열이 더 작은 경우 대신 대신 사용하십시오.
재귀 적

나는 (? 어쩌면 설명은 다음 재 진술한다)는 항상 짧은 표현을 발견 젤리의 같은 줄 알았는데
Weijun 저우

신경 쓰지 마. 나는 말하는 can help you것이 약간 혼란 스럽지만 논리적으로는 괜찮습니다.
Weijun Zhou

흠, 그 말은 오해의 소지가 있습니다.
재귀 적

35

파이썬 2 , 99 73 65 64 63 바이트

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

온라인으로 사용해보십시오!

63 바이트를 사용한 대안 :

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
python을 사용하여 monty python challenge를 해결했기 때문에 찬성했습니다.
Brain Guider

10
@AnderBiguri, 사용되는 언어가 아니라 솔루션 자체를 바탕으로 투표하십시오.
얽히고 설킨

24
@Shaggy AFAIK 언어 선택은 PPCG의 재미있는 부분 중 하나입니다! python 때문에 솔루션이 마음 에 듭니다 . 우리는 이미 어떤 "승리"를 볼 수있는 바이트를 가지고 있습니다.
Brain Guider

2
그렇습니다. codegolf의 투표는 당첨자가 달리 결정될 때 최고 또는 가장 독창적 인 접근 방식 일뿐입니다. 또한 모든 사람들이보다 일반적인 언어로 창의력을 발휘하는 대신 특수 코드 골프 언어를 사용했다면 지루할 것입니다.
Gimli

5
특정 답변을 좋아하는 데는 여러 가지 이유가있을 수 있습니다. 그러나 사람들이 "Python for Monty Python"펑크에 너무 흥분하더라도, 유권자들이 약간 아래로 스크롤하지 않아도 실제로는 더 전통적이지 않은 다른 Python 답변에 감사를 표하는 것이 여전히 슬픈 일입니다 . 더 짧게 ...
Kirill L.

15

파이썬 2 , 62 바이트

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

온라인으로 사용해보십시오!

어떻게?

이 제출은 hash파이썬 2에서 문자열에 대해 함수가 안정적 이라는 사실을 사용합니다 . 유효한 각 입력에는 유효한 출력이 있습니다. 짐승 - 강제 반복 모듈로 %97%78%28%15%2반환 1모든 주석PVC의 단어 0에 대한 우디 단어. ('ea' in n)그것에 값을 더함으로써 , 입력 '도약' 2대신에 우리는 얻는다 1. 다음은 모든 값의 표입니다.

+----------------+----------------------+----------------+-------------+-------+
| 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 |
+----------------+----------------------+----------------+-------------+-------+

반환되는 유형은 이제 'wtPoiVonCdn yy'계산 된 인덱스에서 시작하여 세 번째 문자를 모두 가져와 문자열에서 추출됩니다 .


10

자바 스크립트 (ES6), Chrome / Edge, 54 바이트

parseInt()기수가 36 인 큰 입력에서 의 동작 은 구현에 따라 다르므로 SpiderMonkey (Firefox)에서는 작동하지 않습니다.

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

온라인으로 사용해보십시오!

어떻게?

해시 함수 리턴 3 주석 단어에 대한 1 PVC 및 중 0 , 4 , 5 또는 6 우디 단어. 공간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

이전 버전, 59 57 바이트

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

온라인으로 사용해보십시오!

어떻게?

아래는 각 입력에 대한 기능의 다른 단계입니다. 제 모듈러스의 결과 JS 번호의 정밀도 내에서 근사하며 수학적 잘못 성교 .

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

자바 8, 81 80 67 바이트

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

@MatrinEnder 의 Retina 답변의 정규식 .

온라인으로 사용해보십시오.

원래 답변 : 81 80 바이트

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

온라인으로 사용해보십시오.

설명:

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"

추가 설명 :

litter bin:  anetisi(li)re
newspaper:   a(ne)tisilire
antelope:    (an)etisilire
recidivist:  anetisili(re)
tit:         ane(ti)silire
simpkins:    aneti(si)lire
  1. 의 처음 두 글자 중에 woody단어 이상이 String에 존재하지 않으며이다 le에서 leap.
  2. 의 없음 woody단어는 없습니다 a그이 가져 오는 데 사용됩니다, 그래서 세 번째 문자 등을 leapPVC그것이 아니라면 tinny단어.
  3. 다른 모든 것은 woody목록 에서 한 단어입니다 .

2
이 문제 해결 사고를 통해 읽을 수 있다는 것은 정말 멋진
AJFaraday

6

하스켈 , 61 바이트

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

온라인으로 사용해보십시오!

이 손으로 찾은 논리를 사용합니다.

  • 두 번째 문자와 단어 i또는 첫 글자 r, a또는 n이다tinny
  • l( leap)로 시작하는 다른 단어 는PVC
  • 다른 것은 woody

Lynn leap은 첫 글자를 확인하여 바이트를 저장했습니다 .


1
좋은! 당신은 감지하여 바이트를 저장할 수 있습니다 "leap"|a=='l'="PVC".
Lynn

5

쿼드 , 34 32 바이트

Peter Norvig의 정규식 골퍼의 정규식을 비롯하여 Martin Ender의 시스템을 뻔뻔스럽게 사용합니다 .

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

온라인으로 사용해보십시오!

⊃⍵ 의 첫 번째를 선택

ea "ea"
.p.|is?t "p"문자 또는 "i"와 "t"사이에 선택적인 "s"가 포함되어 있습니다.
$  입력 끝

… 그러나 일치하는 항목을 다음 중 하나로 대체합니다.

PVC
tinny
woody


동등한 43 바이트 Dyalog APL 기능은 다음과 같습니다.

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

모든 경우를 온라인으로 시도하십시오!


5

C (gcc) , 81 바이트

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

온라인으로 사용해보십시오!

비즈니스의 첫 번째 순서는 단어를 범주로 분리하는 해시 함수를 찾는 것이 었습니다. 내가 곤경에 처한 후(s[0] ^ (s[1] << 2)) & 0x7f0x7f는 물론 인쇄 가능한 ASCII 수준으로 가져 오는 곳에서 . 결과는 다음과 같습니다 (테이블은 정렬되지만 결과 문자열은 정렬되지 않음).

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

해시 충돌은 같은 범주에 확신하기 때문에 중요하지 않습니다. Woody 해시는 PVC 해시 (120) 아래에 있기 때문에 결과 해시가 Tinny 해시 문자열 ( "HzYfPW")에 있는지 확인해야합니다. Tinny 단어가 아닌 120 이상인 경우 PVC 여야합니다. Tinny 단어가 아니고 해시가 120 미만인 경우 좋은 우디 종류의 단어 여야합니다.


4

x86 32 비트 머신 코드, 39 바이트

16 진 덤프 :

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

해시 함수는 "마법의"숫자로 곱합니다 0x2c616f47. 이 코드에는 6 개의 숫자 만 사용할 수 있습니다.

우선 PVC, 출력에 씁니다 . 필요한 경우 덮어 씁니다.

해싱 후 PVC 단어를 확인합니다. 확인은 al = ah-작은 2 바이트 명령이므로 선택했습니다. 그리고, 글을 하나 wood또는 tinn해시 결과의 부호에 따라. 그런 다음y .

조립 코드 :

    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

젤리 ,  27  26 바이트

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

문자 목록을 수락하고 반환하는 모나드 링크.

온라인으로 사용해보십시오!

어떻게?

⁵ị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

Dirty , 73 57 54 바이트

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

온라인으로 사용해보십시오!

설명 :

비슷한 이전 버전의 경우 (골프를 중단하면 업데이트 함)

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

이 본문은 다음과 같이 구성됩니다.

⇖            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

우리가 왼쪽으로 가면, 우리는 :

       ⇨⇖'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)

그렇지 않으면 문자열이 "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

그런 다음 두 번째 문자가 "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

그들이 모두 넘어지면, 우리는

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

우리가 점프를 끝내면

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

3

C # 97 바이트

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

나는 문자열 길이의 패턴을 찾고 길이 4와 8을 제외하고는 고유하다는 것을 알았습니다. 따라서 첫 문자를 보면 특별한 경우입니다. 글쎄, 여전히 일부 답변보다 짧습니다. :)


1
Martin Ender가 이러한 목록에 대한 간단한 규칙을 찾았을 때 거의 모든 답변이 동일한 솔루션을 구현했습니다. 독창적 인 접근 방식을 보는 것이 좋습니다. :)
AJFaraday

피드백 감사드립니다. :) 나는 시도하기 전에 다른 해결책을 읽지 못했습니다. 아마도 아직 더 우아한 해결책이 아직 발견되지 않았습니다. 나는 그들이 모두 독특한 길이를 가졌 으면 좋겠다고 생각합니다.
lee

2
string t(string w)=>그냥 될 수 있습니다 w=>. 'p'내가 생각하는 다른 문자를 int 표현으로 변환 할 수 있습니다 . 후미 세미콜론을 제거 할 수 있습니다
TheLethalCoder

3

파이썬 , 59 바이트

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

온라인으로 사용해보십시오!

ovs의 Python 응답 에서 인덱싱을 사용 하지만 더 간단하고 짧은 선택 기능을 사용합니다.

w줄 바꿈 ( (w*4)[9]-4 회 w*4반복 되는 위치 w)이있는 단어의 10 번째 문자가 단어 주석 ( in"tin")의 문자 인 경우 단어는 주석입니다 . 그렇지 않으면 3 번째 문자 ( w[2])가 a ( <'b')이면 단어는 PVC입니다 그렇지 않으면 단어는 우디 입니다.

...이 59는 동일한 작업을 수행합니다.

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


2

배치, 145 바이트

@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

STDIN에서 입력을받습니다. 설명 : 확인 후 leap, 주석 단어 중 하나를 문자의 하나로 시작 a, n또는 r나 자신의 두 번째 문자입니다 i.


2

CJam , 35 바이트

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

온라인으로 사용해보십시오!

나는 우디하고 작은 문자열을 두 개의 클래스로 해시하기 위해 짧은 표현에 대한 무차별 대입 검색을 시작한 것을 완전히 잊었다. 방금 검색이 실행 된 콘솔 창을 찾았으며 실제로 뭔가를 찾았습니다 ...

설명

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

엑셀, 81 바이트

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

'방충제'방법 사용.



1

자바 스크립트, 60 , 50

편집 나는 다른 모든 정규식 답변을 보았습니다. 난 그냥 장님 같아요. 어쨌든, 여기 같은 정규 표현식을 사용하는 것이 있습니다

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

또한 이제 다른 JS 답변보다 뛰어납니다.

단편:

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"));

이전 답변

나는 정규 표현식을 아직 보지 못했기 때문에 시도해 볼 것이라고 생각했다.

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

return 문을 포함하지 않았으므로 60 이상으로 계산되는지 확실하지 않습니다. 컴퓨터를 타면 스 니펫을 추가합니다

편집 : 스 니펫

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"));

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.