Bernardino는 변경되지 않은 달러 단어를 식별합니다


47

정의

달러 단어는 z는 26 명 = 1을, 상기 문자 합산의 결과는 (100)이며, 그 문자들 각각은 퍼센트 값을 부여하는 단어 다음 코드 검토에 대한 일례이며, 여기 목록은 온라인에서 찾은 달러 단어.

입력

입력은 한 언어의 텍스트 데이터 유형으로 az에서 사전 순으로 정렬됩니다 (배열 허용). 다른 입력을 고려할 필요가 없습니다. 공백, 아포스트로피 또는 하이픈은 없습니다. 소문자, 대문자 또는 조합으로 사용할 수 있습니다. 후행 줄 바꿈이 허용됩니다.

산출

입력 값이 달러 단어이면 참 값을, 그렇지 않으면 거짓 값을 출력합니다.

테스트 사례

진실한 :

buzzy
boycott
identifies
adiabatically
ttttt

팔시 :

zzz
zzzzzzz
abcdefghiljjjzz
tttt
basic

이것은 코드 골프이므로 바이트 단위의 최단 답변이 이깁니다! 표준 허점과 규칙이 적용됩니다. 타이는 첫 포스터에 간다.


20
제목에 달러 단어가 포함되어 있습니다.
Stephen

답변:


7

GS2 , 6 바이트

▲1Θd←q

입력은 대문자 여야합니다.

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

작동 원리

  Θ       Combine the previous two tokens into a block and map it over the input.
▲             Push 64.
 1            Subtract 64 from the character on the stack.
   d      Take the sum of the resulting character array.
    ←     Push 100.
     q    Compare the two items on the stack for equality.



11

펄 6 , 21 바이트

{100==[+] .ords X%32}

시도 해봐

번갈아 하는:

{Ⅽ==[+] .ords X%32}

시도 해봐

(가) 있습니다 입니다 ROMAN NUMERAL ONE HUNDREDU + 216D가의 ... 100 unival로
인코딩에 3 바이트를합니다.

넓히는:

{  # bare block lambda with implicit parameter $_

  100     # is 100
  ==      # equal to
  [+]     # the sum of the following

    .ords # the ordinals of the input (implicit method call on $_)
    X[%]  # crossed using the modulus operator
    32    # with 32 to get 65..90 or 97..122 to become 1..26
}

11

MATL , 8 바이트

96-s100=

소문자 입력을 사용합니다.

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

설명

코드는 다음과 같이 읽을 수 있습니다.

96-   % Implicitly input string. Subtract 96 from each char interpreted as ASCII code
s     % Sum of array
100=  % Does it equal 100? Implicitly display

7

자바 스크립트 (ES6), 46 바이트

반환 0또는 1.

let f =

w=>[...w].map(c=>p-=parseInt(c,36)-9,p=100)|!p

console.log(f('buzzy'))
console.log(f('qwerty'))


흥미롭게도 reduce재귀 시도 와 재귀는 모두 2 바이트 더 길어졌습니다.
Neil

@Neil 사실, reduce()처음 게시 할 때 유예 기간의 처음 몇 분 동안 사용 되었습니다.
Arnauld

7

하스켈 , 32 바이트

f s=sum[1|c<-s,_<-['a'..c]]==100

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

아이디어는 목록의 a각 문자에 대해 주어진 문자에서 문자 목록을 만들고 총 길이가 100인지 확인하는 것입니다.

다른 시도 :

f s=sum[1|c<-s,_<-['a'..c]]==100

f s=sum[fromEnum c-96|c<-s]==100
f s=100==length((\c->['a'..c])=<<s)
(==100).length.(>>= \c->['a'..c])
(==100).length.(=<<)(\c->['a'..c])
(==100).length.(enumFromTo 'a'=<<)
f s=100==length(do c<-s;['a'..c])

너무 나쁘다 enumFromTo.


1
길이가 부끄러운 (100==).length.(enumFromTo 'a' =<<)것이 맞습니다. 포인트 프리를 깨끗하게 사용하는 것
Julian Wolf

7

C, 45 43 바이트

2 바이트를 절약하고 솔루션을 대소 문자를 구분하지 않은 @Neil에게 감사합니다!

n;f(char*s){for(n=100;*s;)n-=*s++&31;n=!n;}

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


n=0전역 적으로 설정 한 다음 루프 사양의 첫 번째 절을 건너 뛰면 바이트를 절약 할 수있는 것 같습니다 . 편집 : 신경 쓰지 않음 — 최초의 전화에만 효과가있을 것 같습니다.
Julian Wolf

3
100 저장 바이트에서 카운트 다운 할 수 있습니까? 또한 &31코드 대소 문자를 구분하지 않아도됩니다.
Neil

호기심에서 어떻게 n=!n작동합니까? n일부 테스트를 기반으로 !0반환이 표시되므로 0 인지 확인 합니다 1. !15리턴 0; 또한 !-15반환 0합니다. 그런데 왜? 어떤 피연산자 !를 C로 사용할 때 C에 !integer있습니까?
Kevin Cruijssen

@KevinCruijssen !은 단지 논리적 not입니다. C에서는을 0의미 false하고 다른 정수 값은을 의미 true합니다. 그래서 !0 == 1, 그리고 !n == 0모든을 위해 n != 0.
Steadybox

@Steadybox 아, 나는이 부분을 몰랐다 : " 그리고 다른 정수 값은 true "를 의미 하지만 실제로 의미가 있습니다. 나는 항상 (올바르게) 그것을 0=false; 1=true대신 대신 생각 했기 때문에 혼란 스러웠습니다. 답변 해주셔서 감사합니다.
Kevin Cruijssen

6

하스켈 , 32 바이트

f w=sum[fromEnum c-96|c<-w]==100

이것은 소문자 입력에 효과적입니다. 대문자의 경우 s/96/64/. 대소 문자 지원은 많은 바이트를 추가합니다.


6

매스 매 티카, 23 바이트

100==Tr@LetterNumber@#&

문자열 (또는 문자 배열)을 입력, 대소 문자 구분 및 True또는 반환으로 사용하는 순수 함수 False. 여기 Tr에 문자 숫자를 더합니다. 그 밖의 모든 것은 자명하다.


6

젤리 , 9 7? * 8 바이트

ɠO%32S⁼³

입력이 달러 단어이면 1을 출력하고 그렇지 않으면 0을 출력하는 전체 프로그램.

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

어떻게?

ɠO%32S⁼³ - Main link
ɠ        - read a line of input from STDIN
 O       - cast to ordinals
  %32    - mod 32 (vectorises) (-3*32=96 from lowercase; -2*32=64 from uppercase)
     S   - sum
       ³ - literal: 100
      ⁼  - equal?

* 7 바이트 일 수 있습니까?

이것이 입력 된 유일한 이유 는 3 번째 명령 줄 입력 (1 번째 프로그램 입력) 대신 리터럴 100 ɠ으로 유지 하는 것이 었습니다 .³

이를 피하는 방법은 Dennis가 지적한 것처럼 ȷ210 2 인 원시 리터럴 양식 을 사용하여 100을 만드는 것 입니다. 이것은 또 다른 8 바이트로 O%32S=ȷ2이어지지 만 이제는 명명되지 않은 monadic 함수입니다 (3 번째 인수 로 전체 프로그램으로 작동 함 ).

골프에서, 그들이 존재할 수있는 프로그램을 제한하는 변수 또는 헬퍼 함수를 ​​생성 할 수 있기 때문에 (함수의 재사용을 막지 않고는 범위 내에서 이름을 재사용 할 수 없음), 프로그램을 STDIN의 입력 만받는 것으로 제한 또한 수용 가능하며,이 경우 7 바이트 O%32S=³는 여기서 명명되지 않은 함수로 수용 될 수 있습니다.


1
또는 O%32S=ȷ2. 대문자 및 소문자 입력에 사용됩니다.
Dennis

@Dennis 경계선 일지 모르지만 O%32S⁼³재사용 할 수있는 명명되지 않은 함수를 정의하므로 실제로 유효한 항목 이 아닙니다 . 프로그램의 나머지 부분이 입력에 명령 줄 인수를 사용하지 않는 한?
Jonathan Allan

흠, 그럴 수 있다고 생각합니다. 예를 들어 C에서 전역 변수를 사용하는 것과 다르지 않습니다.
Dennis

6

Alice , 23 바이트

/o!
\i@/e)q&w[?'`-+k3-n

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

입력은 소문자 여야합니다. 1달러 단어 등을 인쇄 합니다 0.

설명

Alice의 테이프와 일부 고급 제어 흐름을 보여줄 시간입니다. 정수와 문자열을 개별적으로 다루는 데 상당히 능숙하지만 Alice는 a) 문자열 길이를 결정하고 b) 문자와 코드 포인트 사이를 변환 할 수있는 기본 제공 기능이 없습니다. 그 이유는 모든 Alice 명령이 정수를 정수에 매핑하거나 문자열을 문자열에 매핑하기 때문입니다. 그러나 두 가지 모두 문자열을 정수에 매핑하거나 그 반대로 매핑해야하므로 Alice의 모드에 맞지 않습니다.

그러나 Alice는 스택 외에도 테이프를 가지고 있으며 Cardinal and Ordinal 모드는 테이프의 데이터를 다른 방식으로 해석합니다.

  • 카디널 모드에서는 Brainfuck와 같은 다른 언어에 익숙한 일반 테이프입니다. 각 셀에 하나의 정수를 저장할 수 있으며 테이프 헤드를 움직일 수 있습니다. 테이프는 무한히 길며 처음에는 모든 셀에서 -1 을 보유합니다 . 셀도 색인화되며 테이프 헤드는 색인 0 에서 시작합니다 .
  • 서수 모드에는 자체 테이프 헤드 (인덱스 0 에서 시작 )가 있으며 테이프를 문자열 목록으로 해석합니다. 문자열은 문자가 아닌 셀 (즉, 유효한 유니 코드 코드 포인트가 아닌 모든 값), 특히 -1로 종료 됩니다. 서수 모드의 경우 테이프는 처음에 빈 문자열로 채워집니다.

이 테이프는 위의 두 작업에 모두 사용할 수 있습니다. 문자열 길이를 얻으려면 서수 모드에서 테이프에 기록하고 카디널 모드에서 종료 -1 을 찾고 테이프 헤드의 위치를 ​​검색합니다. 문자를 코드 포인트로 변환하기 위해 카디널 모드에서 테이프에서 간단히 읽습니다.

이 솔루션에 사용되는 다른 두 가지 중요한 기능은 반환 스택과 반복자입니다. Alice는 jump 명령을 사용할 때 일반적으로 채워진 리턴 스택을 가지고 있으며 j, 주소를 팝하여 뒤로 이동할 수 있습니다 k. 그러나로 이동하지 않고 현재 주소를 반환 스택으로 푸시 할 수도 있습니다 w. repeat 명령 w과 결합 하면 현재 주소를 리턴 스택으로 n 번 푸시 할 수 있습니다 . 이제 우리가 도달 할 때마다 하나의 사본이 리턴 스택에서 튀어 나와 다른 반복을 수행 합니다 (IP는 다른 명령을 실행하기 전에 이동하기 때문에 그 후에 셀에서 시작). 반환 스택이 비면&kwk전혀 아무것도하지 않으며 IP는 단순히 통과합니다. 따라서 &w...k정수 n을 팝 한 다음 ... n + 1 회 실행 하여 간단한 for루프 를 표현하는 매우 간결한 방법을 제공 합니다.

코드 자체에서 ...

/     Reflect to SE. Switch to Ordinal.
i     Read the input word as a string.
      Bounce off bottom boundary, move NE.
!     Store the input word on the tape.
      Bounce off top boundary, move SE.
/     Reflect to E. Switch to Cardinal.
e     Push -1.
)     Seek right on the tape for a -1, which finds the -1 terminating
      the input word.
q     Push the tape head's position, which gives us the string length N.
&w    Repeat this loop n+1 times (see above for an explanation)...
  [     Move the tape head left by one cell.
  ?     Retrieve the code point of the character in that cell.
  '`    Push 96.
  -     Subtract it from the code point to convert the letters to 1...26.
  +     Add the result to a running total. This total is initialised to 
        zero, because in Cardinal mode, the stack is implicitly filled with
        an infinite amount of zeros at the bottom.
k    End of loop.
     Note that the above loop ran once more than we have characters in the
     string. This is actually really convenient, because it means that we've
     added a "-1 character" to the running total. After subtracting 96 to
     convert it to its "letter value" this gives 97. So dollar words will
     actually result in 100 - 97 = 3, which we can check against for one
     byte less than for equality with 100.
3-   Subtract 3 to give 0 for dollar words.
n    Logical NOT. Turns 0 (dollar words) into 1 and everything else into 0.
     The IP wraps around to the beginning of the first line.
\    Reflect to NE. Switch to Ordinal.
o    Implicitly convert the result to a string and print it.
     Bounce off top boundary, move SE.
@    Terminate the program.

좋은! 나는 첫 시도와 함께 41을 얻었다
Kritixi Lithos

6

R, 55 54 바이트

function(x)sum(match(el(strsplit(x,"")),letters))==100

BLT 덕분에 -1 바이트

  • 반환에 필요한 계산, 수행하는 함수를 반환 TRUE하고 FALSE하나가 기대하는 것처럼합니다.

  • 입력을 소문자로 취합니다. 단지에서 스위치를 것 letters까지 LETTERS모두 대문자에 대한


1
function(x)sum(match(el(strsplit(x,"")),letters))==100바이트를 저장합니다.
BLT

6

루비, 25 바이트

->s{s.sum-s.size*64==100}

대문자로 작동합니다.

좀 더 복잡한 Ruby 항목이 있지만 실제로는 간단합니다. s.sum입력 문자열의 ASCII 코드를 추가하고,이 값에서 문자열 길이의 64 배를 뺍니다.

사용 예

f=->s{s.sum-s.size*64==100}

puts f["ADIABATICALLY"]
puts f["ZZZ"]

이것은 Ruby 2.4에서만 작동하며 현재 TIO에서는 작동하지 않습니다.
GB

1
@GB의 의견에 감사하지만 2.2.6에서 실행 중이며 잘 작동합니다. 이 기능은 1.9.3부터 문서화되었습니다. TIO.run 및 Ideone.com에서도 작동합니다.
Level River St

맞습니다. Array # sum과 동일하다고 생각했습니다. 2.4의 새로운 기능
GB

실제로 이것은 ASCII 값의 합이 아니며 정의는 "str 문자의 기본 n- 비트 체크섬을 반환합니다"입니다. 물론이 경우에도 작동합니다.
GB


5

05AB1E , 9 바이트

5bIvAyk>-

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

설명

으로 1 05AB1E의 유일한 truthy 값이 우리에 비해 이상 빼기를 사용하여 바이트를 저장할 수있다 (100) .

5b         # convert 5 to binary (results in 101)
  Iv       # for each letter in input word
    Ayk    # get the index of the letter in the alphabet
       >   # increment
        -  # subtract from total

5

펄 5 , 30 바이트

@Neil (- 31&대신 -96+) 덕분에 -1 바이트 .

29 바이트의 코드 + -p플래그

$@+=31&ord for/./g;$_=$@==100

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


31&ord대신 사용할 수 있습니까 ?
Neil

@ Neil Hum ... 나는 항상 -96+그런 것들을 위해 사용하고 있습니다. (그러나 이제는 이전 게시물을 다시 살펴보고 모든 -96+: x를 교체해야한다고 생각합니다 .)
Dada

이 질문은 배열이 입력으로 허용되도록 지정합니다. 따라서 이것은 서브 루틴으로서 더 {$@+=31&ord for@_;$@==100}
짧을

나는 그것이 문맥에 달려 있다고 생각합니다-여기에서 그것을 사용하고 +=있지만 다른 경우에는 괄호를 절약 할 수 있습니다.
Neil

@ msh210 도전은 말한다 your one language's text datatypes. 배열은 펄의 텍스트 데이터 타입이 아니다 ... (그렇지 않으면 실제로 1 바이트를 절약했을 것이다)
Dada

5

PowerShell , 36 30 바이트

$args|%{$s+=$_[0]-96};$s-eq100

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

배열로 입력하지만 문자를 처리하는 더 좋은 방법이 있는지 궁금합니다.

편집 쉬운 공간을 놓쳤지만 @AdmBorkBork는 친절하게 알려줍니다 : P, 실제로 문자를 처리하는 더 좋은 방법이있었습니다!


히야-몇 가지 빠른 골프. 당신은 주위에 괄호가 필요하지 않습니다 [char]$_-96, 당신은 사이의 공간이 필요하지 않습니다 -eq그리고 100당신도 할 수있다 (33)에 당신을 받고, "$_"[0]대신 [char]$_32 당신을 받고, 온라인으로보십시오!
AdmBorkBork

있습니까 "주위가 $_필요? 캐스트없이 작동하는 것으로 보입니다. 입력이 이미 문자열 배열이기 때문일 수 있습니까?
사인파

아, 사실 당신은 맞습니다. 는 "이 특정 인스턴스에서 필요하지 않습니다.
AdmBorkBork

5

Alice , 28 18 바이트

10 바이트 골프를위한 @MartinEnder 덕분에

=I.!'`-+?hn
>3-nO@

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

이 제출은 @MartinEnder의 답변과 다른 방법을 사용합니다.

이 제출물 0x00은 허위와 진실로 출력 됩니다 0x01.

그래서 여기에 출력하는 버전 0이나 1대신이 그것을 시도는!

설명

아래의 설명은 "보이는"버전에 대한 것입니다. 두 번째는 첫 번째 프로그램을 제외하고는 매우 유사합니다. 마지막 o은 ( 0또는 1우리가 카디널 모드에 있기 때문에) 또는 문자열로 변환하지 않지만 대신 숫자를 가져 와서 해당 코드 포인트에서 문자를 출력합니다.

=                 Does nothing, but will be useful later on
I                 Read a character and push its code point onto the stack
                  If there is no more input, -1 is pushed instead
.                 Duplicate it
!                 Store it on the tape
#                 Skip the next command
o                 Gets skipped
'`                Push 96
-                 Subtract it from the character
+                 And add it to the total
?                 Load the number on the tape
h                 Increment it
n                 And negate it
                  For all characters that are read, ?hn results in 0,
                  but if -1 is pushed, then the result becomes 1

이 후 IP는의 왼쪽 가장자리로 줄 바꿈됩니다 =. 스택의 최상위 값이 0인 경우 IP는 경로로 계속 진행하여 입력으로 완료되면 (스택의 맨 위가 됨) 모든 문자의 총 합이 증가 1하고 IP가 오른쪽으로 바뀝니다 (90 시계 방향으로도).

한 가지 유의해야 할 점은 입력이 끝나면 첫 번째 줄의 루프가 한 번 반복되는 것입니다. 이 차감됩니다 97( 96으로부터 '`-1전체에서 입력의 부족).

>                Set the direction of the IP to East
3-               Subtract 3 from it (yields 0 if sum is 100, something else otherwise)
n                Negate it; Zero becomes 1, non-zero numbers become 0
/                Mirror; the IP gets redirected South-East
                 The IP reflects off the bottom and goes North-East
                 Now the program is in Ordinal mode, where numbers are automatically converted into strings when being used
o                Output the top of the stack as a string
                 IP reflects off the top and heads South-East
@                End the program

5

택시 , 1259 바이트

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to Auctioneer School.Go to Auctioneer School:s 1 r 1 l 1 l.Pickup a passenger going to Chop Suey.0 is waiting at Starchild Numerology.Go to Starchild Numerology:s 1 l.Pickup a passenger going to Addition Alley.Go to Chop Suey:e 1 l 2 r 3 r 3 r.[a]Switch to plan "b" if no one is waiting.Pickup a passenger going to Charboil Grill.Go to Charboil Grill:n 1 l 3 l 3 l.Pickup a passenger going to What's The Difference.Go to Go More:e.64 is waiting at Starchild Numerology.Go to Starchild Numerology:e 2 r.Pickup a passenger going to What's The Difference.Go to What's The Difference:e 1 l 2 r 1 l.Pickup a passenger going to Addition Alley.Go to Addition Alley:e 2 r.Pickup a passenger going to Addition Alley.Go to Chop Suey:n 1 r 2 r.Switch to plan "a".[b]Go to Addition Alley:n 1 l 2 l.Pickup a passenger going to Equal's Corner.100 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "c" if no one is waiting."TRUE" is waiting at Writer's Depot.[c]"FALSE" is waiting at Writer's Depot.Go to Writer's Depot:n 1 l 1 r.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.

줄 바꿈을 사용하면 다음과 같습니다.

Go to Post Office:w 1 l 1 r 1 l.
Pickup a passenger going to Auctioneer School.
Go to Auctioneer School:s 1 r 1 l 1 l.
Pickup a passenger going to Chop Suey.
0 is waiting at Starchild Numerology.
Go to Starchild Numerology:s 1 l.
Pickup a passenger going to Addition Alley.
Go to Chop Suey:e 1 l 2 r 3 r 3 r.
[a]
Switch to plan "b" if no one is waiting.
Pickup a passenger going to Charboil Grill.
Go to Charboil Grill:n 1 l 3 l 3 l.
Pickup a passenger going to What's The Difference.
Go to Go More:e.
64 is waiting at Starchild Numerology.
Go to Starchild Numerology:e 2 r.
Pickup a passenger going to What's The Difference.
Go to What's The Difference:e 1 l 2 r 1 l.
Pickup a passenger going to Addition Alley.
Go to Addition Alley:e 2 r.
Pickup a passenger going to Addition Alley.
Go to Chop Suey:n 1 r 2 r.
Switch to plan "a".
[b]
Go to Addition Alley:n 1 l 2 l.
Pickup a passenger going to Equal's Corner.
100 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
Switch to plan "c" if no one is waiting.
TRUE is waiting at Writer's Depot.
[c]
FALSE is waiting at Writer's Depot.
Go to Writer's Depot:n 1 l 1 r.
Pickup a passenger going to Post Office.
Go to Post Office:n 1 r 2 r 1 l.

대문자 또는 소문자 Auctioneer School로 변환되므로 모두 대문자로 변환 되기 때문 입니다.
Chop Suey개별 문자로 나눕니다.
Charboil Grill문자를 ASCII 코드로 변환합니다.
한 번에 한 문자 씩 집어 들고 ASCII로 변환하고 65를 뺀 다음 누적 합계에 추가합니다.
더 이상 문자가 없으면 총계를 100과 비교하십시오.

TRUE달러 단어와 FALSE다른 모든 단어를 반환 합니다 .


1
"지루한"읽을 수없는 코드-골프 랭귀지 <20bytes의 세계에서, 나는 당신의 입장, 친절한 낯선 사람을 환영합니다.
Olivier Dulac

5

IA-32 머신 코드, 21 바이트

16 진 덤프 :

33 c0 6a 64 5a 8a 01 41 24 1f 75 05 83 ea 01 d6
c3 2b d0 eb f0

조립 코드 :

    xor eax, eax;   initialize eax to 0
    push 100;       initialize edx
    pop edx;            to 100
myloop:
    mov al, [ecx];  load a byte
    inc ecx;        go to next byte
    and al, 31;     convert from letter to number
    jnz cont;       not done? continue

    ;               done:
    sub edx, 1;     check whether edx got to 0; result is in CF
    __emit(0xd6);   aka SALC - set al to CF
    ret
cont:
    sub edx, eax
    jmp myloop

100에서 0까지 계산합니다. 0에 도달하면 true (0xff)를 반환합니다. 그렇지 않으면 false (0x00)입니다.


5

Dyalog APL, 17 15 바이트

100=+/17-⍨⎕AV⍳⍞

Dyalog Classic 문자 세트를 사용합니다.

              ⍞  ⍝ string input
          ⎕AV⍳   ⍝ index in the character map
      17-⍨       ⍝ subtract 17 from each ('a' = 18)
    +/           ⍝ sum
100=             ⍝ equal to 100?

기본적으로 모든 제출은 전체 프로그램 또는 기능이어야합니다. REPL 프로그램은 식별 된 한 허용됩니다. 그러나 여전히 사용자 입력을 요청해야합니다.
Dennis



4

망막 , 47 23 바이트

\w
!$&
}T`l`_l
^!{100}$

온라인으로 사용해보십시오! 참고 : 헤더는 입력을 소문자로 나누어 단어로 나눕니다. 결과는 별도의 줄에 나타납니다. 편집 : @MartinEnder 덕분에 너무 많은 바이트를 절약했습니다.


그것은 문자를 삽입하는 동안 점차적를 낮춤으로써 문자 값을 계산하기 위해 많은 짧다 : tio.run/nexus/...
마틴 청산

4

옥타브, 18 바이트

@(x)sum(x-96)==100

문자의 숫자 값을 얻기 위해 96입력 문자열에서 x소문자를 뺍니다 (소문자). 를 가져와 sum비교합니다 100. 1정확한 경우에 대한 논리 0및 잘못된 경우에 대한 논리 를 반환합니다 .

"달러 단어"에 대해 false를, "달러가 아닌 단어"에 대해 true를 제공하는 것이 좋으면 1 바이트를 절약 할 수 있습니다.


4

Japt , 13 12 10 바이트

L¥U¬x_c %H

설명:

L¥ U¬x _c %H
L¥(U¬x(_c %H))
L¥(          )   // 100==
   U¬            //   Input split into a char array
     x(     )    //   The sum of:
       _         //     At each char:
        c        //       Get the char-code and
          %H     //       Mod 32

온라인으로 테스트하십시오!

12 바이트 :

L¥U¬mc m%H x

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

다른 기술을 사용하는 또 다른 12 바이트 솔루션

L¥U¬x@;CaX Ä

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


잘 했어! 나는 당신이 처음에 바이트를 저장할 수 있다고 생각 m%H대신 m-96에 두 번째에 (! 그것이 지금 두 경우 모두에 보너스를 일 것이다), 한L¥U¬x@;CaX Ä
ETHproductions

@ETHproductions 감사합니다! m%H좋은 발견이었습니다. x@좋은 아이디어였습니다!
Oliver

@ETHproductions 10 바이트로 줄였습니다.)
Oliver

3

루비 (2.4+), 38 바이트

소문자로 입력합니다. Array#sumTIO에서 실행되지 않도록 Ruby 2.4가 필요합니다 .

->a{a.chars.map{|c|c.ord-96}.sum==100}

2
사용 String#bytes대신에 String#chars전화 할 필요가 없습니다 c.ord.
Value Ink

그리고 사용하는 sum대신 배열에map
GB

3

/// , 564 210 189 185 바이트

/~/1\/\///4/11~3/41//6/33//2/66//5/22~a/~b/1~c/4~d/3~e/31~f/34~g/6~h/16~i/46~j/36~k/316~l/346~m/2~n/12~o/42~p/32~q/312~r/342~s/62~t/162~u/462~v/362~w/3162~x/3462~y/22~z/122~5555/0///1/0

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

"달러 단어"이면 1을 인쇄하고, 그렇지 않으면 "0"을 인쇄합니다

입력은 다음과 같습니다 : (오른쪽으로 스크롤)

/~/1\/\///4/11~3/41//6/33//2/66//5/22~a/~b/1~c/4~d/3~e/31~f/34~g/6~h/16~i/46~j/36~k/316~l/346~m/2~n/12~o/42~p/32~q/312~r/342~s/62~t/162~u/462~v/362~w/3162~x/3462~y/22~z/122~5555/0//INPUT WORD HERE/1/0

각 문자를 단항의 값으로 바꾼 다음 단항 100을 0으로 바꿉니다. 그런 다음 단어의 값이 1로 대체됩니다. 단어의 값이 0이면 1의 끝에 코드는 0을 대체합니다. 단어의 값이 다른 값이면 0을 인쇄합니다.

골프는 코드에서 일반적인 항목을 대체물로 사용하여 작동합니다.


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