Ist es eine Regenbogenfarbe?

Nov 03 2020

Herausforderung:

Die Herausforderung besteht darin, festzustellen, ob eine Farbe angesichts ihres Namens eine der Farben im Regenbogen ist oder nicht.

Wenn Ihr Programm mit einer Farbe geliefert wird, sollte es einen Wahrheitswert ausgeben, wenn es sich um eine Farbe im Regenbogen handelt, andernfalls einen falschen.

Regeln:

  1. Die möglichen Eingabemöglichkeiten sind vollständig und in den Testfällen definiert. Sie können davon ausgehen, dass Sie keine anderen als die definierten Eingaben erhalten
  2. Das Zeichengehäuse für Eingaben kann eines der folgenden sein: UPPER, Lower oder Title Case, muss jedoch konsistent sein
  3. Standard Lücken nicht erlaubt

Testfälle:

Wahrheit:

  • red
  • orange
  • yellow
  • green
  • blue
  • indigo
  • violet

Falsch:

  • purple
  • brown
  • pink
  • cyan
  • maroon

 

Bestenliste:

var QUESTION_ID=214678;
var OVERRIDE_USER=97730;
var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;function answersUrl(d){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+d+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(d,e){return"https://api.stackexchange.com/2.2/answers/"+e.join(";")+"/comments?page="+d+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){answers.push.apply(answers,d.items),answers_hash=[],answer_ids=[],d.items.forEach(function(e){e.comments=[];var f=+e.share_link.match(/\d+/);answer_ids.push(f),answers_hash[f]=e}),d.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){d.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),d.has_more?getComments():more_answers?getAnswers():process()}})}getAnswers();var SCORE_REG=function(){var d=String.raw`h\d`,e=String.raw`\-?\d+\.?\d*`,f=String.raw`[^\n<>]*`,g=String.raw`<s>${f}</s>|<strike>${f}</strike>|<del>${f}</del>`,h=String.raw`[^\n\d<>]*`,j=String.raw`<[^\n<>]+>`;return new RegExp(String.raw`<${d}>`+String.raw`\s*([^\n,]*[^\s,]),.*?`+String.raw`(${e})`+String.raw`(?=`+String.raw`${h}`+String.raw`(?:(?:${g}|${j})${h})*`+String.raw`</${d}>`+String.raw`)`)}(),OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(d){return d.owner.display_name}function process(){var d=[];answers.forEach(function(n){var o=n.body;n.comments.forEach(function(q){OVERRIDE_REG.test(q.body)&&(o="<h1>"+q.body.replace(OVERRIDE_REG,"")+"</h1>")});var p=o.match(SCORE_REG);p&&d.push({user:getAuthorName(n),size:+p[2],language:p[1],link:n.share_link})}),d.sort(function(n,o){var p=n.size,q=o.size;return p-q});var e={},f=1,g=null,h=1;d.forEach(function(n){n.size!=g&&(h=f),g=n.size,++f;var o=jQuery("#answer-template").html();o=o.replace("{{PLACE}}",h+".").replace("{{NAME}}",n.user).replace("{{LANGUAGE}}",n.language).replace("{{SIZE}}",n.size).replace("{{LINK}}",n.link),o=jQuery(o),jQuery("#answers").append(o);var p=n.language;p=jQuery("<i>"+n.language+"</i>").text().toLowerCase(),e[p]=e[p]||{lang:n.language,user:n.user,size:n.size,link:n.link,uniq:p}});var j=[];for(var k in e)e.hasOwnProperty(k)&&j.push(e[k]);j.sort(function(n,o){return n.uniq>o.uniq?1:n.uniq<o.uniq?-1:0});for(var l=0;l<j.length;++l){var m=jQuery("#language-template").html(),k=j[l];m=m.replace("{{LANGUAGE}}",k.lang).replace("{{NAME}}",k.user).replace("{{SIZE}}",k.size).replace("{{LINK}}",k.link),m=jQuery(m),jQuery("#languages").append(m)}}
body{text-align:left!important}#answer-list{padding:10px;float:left}#language-list{padding:10px;float:left}table thead{font-weight:700}table td{padding:5px}
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/primary.css?v=f52df912b654"> <div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> 

Antworten

33 Lynn Nov 03 2020 at 22:21

Haskell , 28 Bytes

(`elem`"albedo").(!!8).cycle

Probieren Sie es online aus!

Wenn wir die Eingabe und den Index an der Position einwickeln 8, ergeben die Regenbogenfarben alle einen Buchstaben unter "albedo", die Nicht-Regenbogenfarben jedoch nicht (sie ergeben einen Buchstaben unter "rwpc").

redredre d red
orangeor a nge
yellowye l low
greengre e ngr
blueblue b lue
indigoin d igo
violetvi o let

purplepu r ple
brownbro w nbr
pinkpink p ink
cyancyan c yan
maroonma r oon
9 Neil Nov 03 2020 at 22:09

Retina 0,8,2 , 7 Bytes

A`p
d|e

Probieren Sie es online aus! Link enthält Testfälle. Nimmt die Eingabe in Kleinbuchstaben an. Ausgaben ungleich Null für Regenbogenfarben, Null für die anderen Eingaben. Erläuterung: Überprüft einfach, ob die Farbe die Buchstaben enthält doder enicht p.

64-Byte-Version zur Überprüfung der 21 spezifischen Fälle von Regenbogenfarben in drei verschiedenen Großschreibungen:

T`L`l`^[A-Z]+$|^. ^(red|orange|yellow|green|blue|indigo|violet)$

Probieren Sie es online aus! Link enthält Testfälle. Erläuterung: Entweder eine Eingabe in Großbuchstaben oder das führende Zeichen wird in Kleinbuchstaben geschrieben. Danach werden die genauen Farben abgeglichen.

9 coltim Nov 03 2020 at 21:50

K (oK) , 23 19 18 12 Bytes

^"rwpc"?*|9#

Probieren Sie es online aus!

Nimmt die Eingabe in Kleinbuchstaben an; basierend auf einer gespiegelten Version von @ Lynns Haskell-Antwort .

  • 9# Wiederholen - 9 Zeichen der Eingabe nehmen, z. B. "lilapur"
  • *| first-reverse, dh last
  • "rwpc"? Suchzeichen in der Zeichenfolge "rwpc", das entweder den Index der Übereinstimmung oder eine Null zurückgibt, falls nicht vorhanden
  • ^Überprüfen Sie, ob null, dh konvertieren Sie Nullen in 1und tatsächliche Indizes in0
8 Sisyphus Nov 04 2020 at 02:44

Gelee , 6 Bytes

,2ḥ93Ḃ

Probieren Sie es online aus!

Verwendet die Jelly-Hashing-Funktion. 5 könnte möglich sein.

6 ovs Nov 03 2020 at 23:10

05AB1E , 7 Bytes

Nimmt Eingaben in Kleinbuchstaben vor.

CƵl%3%È

Probieren Sie es online aus! oder Überprüfen Sie alle Fälle!

Ckonvertiert die Farbe von binär. Auf diese Weise können Ziffern höher als 1, wo Großbuchstaben sind 10zu 35und Kleinschreibung 36zu 61:

C("red") = "r"*2**2 + "e"*2**1 + "d"*2**0 = 53*4 + 40*2 + 39 = 331

Ƶlist die komprimierte Ganzzahl 148, die der Code berechnet

is C(color)%148%3 Èven?
6 RobinRyder Nov 03 2020 at 22:53

R , 41 33 Bytes

sd(utf8ToInt(scan(,"")))%%.195<.1

Probieren Sie es online aus!

Weniger elegant als Giuseppes Lösung , aber 3 11 Bytes kürzer.

Konvertiert die (Kleinbuchstaben-) Eingabe in ASCII-Codepunkte, nimmt die Standardabweichung der resultierenden Ganzzahlen und nimmt dann dieses Modulo 0.195(gefunden durch eine Rastersuche). Das Ergebnis ist geringer als 0.1wenn die Eingabe wahr ist.

6 G.Sliepen Nov 05 2020 at 15:02

C (gcc) , 22 21 Bytes

f(int*s){s=*s/203&1;}

Probieren Sie es online aus!

Inspiriert von ErikFs Antwort. Ich habe ein kleines Programm geschrieben, um die Konstanten brutal zu erzwingen.

4 Sisyphus Nov 03 2020 at 22:00

Python 2 , 22 Bytes

lambda s:hash(s)%683%2

Probieren Sie es online aus!

-1 dank ovs , die den zusätzlichen Freiheitsgrad des flexiblen Eingangsgehäuses genutzt haben, um ein Byte zu sparen.

3 cairdcoinheringaahing Nov 03 2020 at 21:32

Gelee , 21 14 12 10 Bytes

“dʋ»e€µṪ<Ẹ

Probieren Sie es online aus!

Nimmt Eingaben in Kleinbuchstaben vor. Anpassung von Neils Methode

Golf:

  • -10 Bytes durch Ändern der komprimierten Zeichenfolge
  • -5 Bytes durch Anpassen der Coltim-Methode
  • -2 Bytes nach Neils Methode

Wie es funktioniert

“dʋ»e€µṪ<Ẹ - Main link. Takes S on the left
“dʋ»       - Compressed string; Yield "dep"
     €     - For each character in "dep":
    e      -   Is it in S?
      µ    - Use this triplet as the new argument
       Ṫ   - Take the final element (1 if p is present, else 0)
         Ẹ - Are either "d" or "e" in S?
        <  - The tail is 0 and either "d" or "e" are in S
3 Lynn Nov 03 2020 at 22:23

Gelee , 8 7 Bytes

9ịe“\Ṙ»

Probieren Sie es online aus!

Holen Sie sich das neunte Zeichen (Wrapping) und prüfen Sie, ob es in der komprimierten Zeichenfolge “\Ṙ»= ist “albedo”.

Port meiner Haskell-Antwort. Caird hat ein Byte gespeichert: Der Zufall, dass Albedo ein englisches Wort ist, gewinnt tatsächlich Bytes über 9ịe“albedooder 9ịḟ“rwpcaufgrund von Jellys Komprimierungswörterbuch.

3 DominicvanEssen Nov 04 2020 at 11:18

R , 35 28 27 26 Bytes

Bearbeiten: -1 Byte dank Dom Hastings und -1 Byte dank Caird Coinheringaahing

!grepl("ro|p|c",scan(,''))

Probieren Sie es online aus!

Überprüfung des regulären Ausdrucks.
'kastanienbraun' + 'braun' enthalten beide 'ro', 'lila' und 'rosa' enthalten beide 'p'und 'cyan' enthält 'c'.

3 DominicvanEssen Nov 04 2020 at 14:20

Perl 5 , 13 12 Bytes

Bearbeiten: -1 Byte, indem dank Nahuel Fouilleul eine Nullzeichenfolge als falsch zurückgegeben wird

$_=!/ro|p|c/

Probieren Sie es online aus!

Gleicher Ansatz wie meine R-Antwort (mit Hilfe von Dom Hastings + Caird Coinheringaahing), aber wahrscheinlich besser für [Perl] geeignet ...

(Edit: klar , dass die Portierung Neils Retina Antwort ist eigentlich kürzer bei auch nur jetzt etwas länger bei 13 Byte )

2 Scott Nov 03 2020 at 23:36

Pyth , 9 Bytes

%%Cz283 2

Probieren Sie es online aus!

Beantworte meine eigene Frage jetzt, wo andere mich schlagen lassen ... (FYI Ich habe dies nach dem Posten gelöst)

Erläuterung:

  1. Konvertiert in int mit Basis 256
  2. Modulo das um 283
  3. Modulo um 2.

1 wenn Regenbogenfarbe, 0 wenn nicht.

2 Shaggy Nov 03 2020 at 22:02

Japt -! , 13 9 8 Bytes

g8 k`þ

Versuch es

2 Neil Nov 03 2020 at 22:16

Holzkohle , 10 9 Bytes

›⁶³﹪⍘Sβ⁹⁴

Probieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Nimmt Eingaben in Kleinbuchstaben vor. Die Ausgabe ist ein Holzkohle-Boolescher Wert, dh -wenn Regenbogen, nichts, wenn nicht. Erläuterung:

     S      Input word
    ⍘ β     Decoded as base 26 using lowercase alphabet
   ﹪   ⁹⁴   Modulo literal 94
›⁶³         Check whether 63 is greater than the result
            Implicitly print
2 aidan0626 Nov 03 2020 at 23:21

Python 3 , 71 56 44 Bytes

-15 Bytes dank @Scott

-12 Bytes dank @ovs

lambda s:(s[0]<'c'<'r'==s[1])==(s[0]in'pcm')

Probieren Sie es online aus!

2 Giuseppe Nov 03 2020 at 22:01

R , 60 44 Bytes

!scan(,"")%in%colors()[c(547,32,536,68,455)]

Probieren Sie es online aus!

-13 danke an Robin Ryder.

Nimmt die Eingabe als Kleinbuchstaben auf. Überprüft, ob die Farbe nicht zu den ausgeschlossenen Farben gehört.

Outgolfed von Robin Ryder und Dominic van Essen .

2 ErikF Nov 05 2020 at 04:20

C (gcc) , 34 Bytes

Die Funktion nimmt eine Kleinbuchstabenfarbe an und kehrt zurück, 1wenn es sich um eine Regenbogenfarbe handelt 0.

Um Platz zu sparen, habe ich die ersten vier Zeichen der Farbe mit Modulo 81 (der ersten Zahl, die keine Kollisionen hatte und alle druckbaren Reste hatte) gehasht und in der Liste der Hashes für die Nicht-Regenbogenfarben danach gesucht. Wenn es keine Übereinstimmung gibt, ist es eine Regenbogenfarbe.

f(int*s){s=!index("D@M1&",*s%81);}

Probieren Sie es online aus!

Ich könnte zwei Bytes sparen, wenn die Rückgabe 0für eine Regenbogenfarbe und eine Nicht-Null für eine Nicht-Regenbogenfarbe zulässig wäre:

f(int*s){!index("D@M1&",*s%81);}

Probieren Sie es online aus!

2 Samathingamajig Nov 06 2020 at 20:15

JavaScript (ES6), 20 Bytes

s=>!/ro|p|c/.test(s)

Probieren Sie es online aus!

So funktioniert es: Erhalten Sie einen wahrheitsgemäßen Wert, wenn er rovorhanden pist, vorhanden ist oder cvorhanden ist, und invertieren Sie diesen Wert. Wenn er vorhanden ist, ist das Ergebnis falsch, andernfalls ist das Ergebnis wahrheitsgemäß

Schauen Sie sich hier den regulären Ausdruck an (Regex101.com)

JavaScript (ES6), 22 Byte

s=>!/p|[^e]n$/.test(s)

Probieren Sie es online aus!

So funktioniert es: Erhalten Sie einen wahrheitsgemäßen Wert, wenn er mit einem davor beginnt poder endet . Der Wert wird invertiert, sodass true zurückgegeben wird, wenn keine Übereinstimmung vorliegt, und false, wenn eine Übereinstimmung vorliegt. Ich habe mehrere andere reguläre Ausdrücke ausprobiert, die am Ende die gleiche Länge haben, also habe ich mich für diese entschieden, da es einfach genug ist, sie zu erklären.ne!

Schauen Sie sich den Regex hier an (Regex101.com)

2 ScottyJamison Nov 11 2020 at 05:37

WebAssembly-Textformat , 111 Byte

(func(result i32)i32.const 0 i32.load i32.const 8 i32.load i32.add i32.const 13 i32.rem_s i32.const 7 i32.le_s)

Diese Funktion arbeitet mit einem ganzzahligen Speicherarray, das mit der ausgewählten Farbe (im Titelfall) als Liste von ASCII-Codepunkten vorgefüllt beginnen sollte. (Zeichenfolgen können in der Webassembly nicht als normale Funktionsargumente angegeben werden.) Die Funktion gibt 1 zurück, wenn es sich um eine Regenbogenfarbe handelt, oder 0, wenn dies nicht der Fall ist.

Die eigentliche Logik hinter der Funktion ist effektiv die folgende : return (mem[0] + mem[8]) % 13 <= 7. (Jedes Zeichen der Farbe benötigt 4 Bytes im Speicherarray, sodass sich der Byte-Index 8 auf einen Zeichenindex 2 bezieht.) Das eigentliche WebAssembly-Textformat fühlt sich wie eine Stapelmaschine an. Anweisungen wie das i32.const 8Setzen einer 8 auf den Stapel, während i32.addzwei Elemente vom Stapel genommen, hinzugefügt und das Ergebnis wieder aktiviert werden.

Das Folgende ist eine vollständige WebAssembly-Datei mit der oben eingebetteten Funktion.

(module
    (import "api" "mem" (memory 1))
    (func(result i32)i32.const 0 i32.load i32.const 8 i32.load i32.add i32.const 13 i32.rem_s i32.const 7 i32.le_s)
    (export "check" (func 0))
)

Dies kann zu einer WebAssembly-Binärdatei kompiliert werden (eine binäre Wasm-Datei kann generiert und über Online-Tools zur Konvertierung von Wat in Wasm wie dieses heruntergeladen werden ).

Das folgende Javascript führt die kompilierte Binärdatei aus. Es enthält die Logik zum Erstellen des Speicherarrays, das mit einer Farbe vorgefüllt ist. Der Einfachheit halber ist die binäre WebAssembly eingebettet.

// Byte array generated by putting the WAT text into https://mbebenita.github.io/WasmExplorer/
// then downloading the resulting wasm file
// then running [...require('fs').readFileSync('path/to/file.wasm')]
const bytes = new Uint8Array([0,97,115,109,1,0,0,0,1,133,128,128,128,0,1,96,0,1,127,2,140,128,128,128,0,1,3,97,112,105,3,109,101,109,2,0,1,3,130,128,128,128,0,1,0,6,129,128,128,128,0,0,7,137,128,128,128,0,1,5,99,104,101,99,107,0,0,10,153,128,128,128,0,1,147,128,128,128,0,0,65,0,40,2,0,65,8,40,2,0,106,65,13,111,65,7,76,11])
// Alternativly, you can read from the raw wasm file after generating it.
// const bytes = require('fs').readFileSync('./output.wasm')

async function initWaModule() {
  const mem = new WebAssembly.Memory({initial:1})
  const { instance } = await WebAssembly.instantiate(bytes, { api: {mem}, })

  return {
    isRainbowColor(color) {
      // Insert color param into memory
      const i32Array = new Uint32Array(mem.buffer);
      i32Array.fill(0)
      const colorAsCodePoints = [...color].map(c => c.charCodeAt(0))
      i32Array.set(colorAsCodePoints)
    
      // Run webassembly function
      return !!instance.exports.check()
    }
  }
}

const TRUE_COLORS = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
const FALSE_COLORS = ['Purple', 'Brown', 'Pink', 'Cyan', 'Maroon']

;(async () => {
  const { isRainbowColor } = await initWaModule()
  console.log('These should be true')
  TRUE_COLORS.forEach(color => console.log(color, isRainbowColor(color)))
  console.log('These should be false')
  FALSE_COLORS.forEach(color => console.log(color, isRainbowColor(color)))
})()

2 Makonede Dec 06 2020 at 19:35

05AB1E , 14 8 Bytes

-6 Bytes dank @ovs .

'•³€å¤-à

Probieren Sie es online aus!

'•³€å¤-à  # full program
      -   # subtract...
     ¤    # last element of...
    å     # is...
   €      # each character of...
          # implicit input...
    å     # in...
'•³       # "deep"...
       -  # from...
          # (implicit) each element of...
    å     # is...
   €      # each character of...
          # implicit input...
    å     # in...
'•³       # "deep"
       à  # greatest element of list
          # implicit output
1 Arnauld Nov 03 2020 at 22:40

JavaScript (ES9), 23 Byte

Ähnlich wie Neils Retina-Antwort , jedoch mit einem negativen Aussehen, um zu verhindern, dass sie übereinstimmen.purple

s=>/d|(?<!pl)e/.test(s)

Probieren Sie es online aus!


JavaScript (ES6), 25 Byte

Der Fall spielt keine Rolle. Gibt einen booleschen Wert zurück.

s=>parseInt(s,35)%385%3>1

Probieren Sie es online aus!

1 pxeger Nov 04 2020 at 08:40

Python 3.8 (Vorabversion) PYTHONHASHSEED=2537 , 18 Byte

lambda x:hash(x)%2

Probieren Sie es online aus!

Ich bin mir ziemlich sicher, dass dies erlaubt ist. Eine Umgebungsvariable ist wie eine Befehlszeilenoption, daher wird dies als separate Programmiersprache zu normalem Python betrachtet. Eingabe in Kleinbuchstaben, Ausgaben 1oder 0.

1 Razetime Nov 04 2020 at 13:44

Leinwand , 12 Bytes

{c]∑“N*.[„;%

Probieren Sie es hier aus!

gleiche Methode wie die Antwort von pxeger.

1 pxeger Nov 04 2020 at 08:35

Ruby -n , 18 Bytes

p 255969480%$_.sum

Probieren Sie es online aus!

Eingabe im Titelfall, Ausgabe ist entweder eine wahrheitsgemäße Ganzzahl oder eine falsche Null.


\ $ 255969480 \ $ ist das niedrigste gemeinsame Vielfache der Summen aller Titel-Cased-Truthy-Strings, das auch kein Vielfaches der Summen der Title-Cased-Falsey-Strings ist. Der Grund, warum ich Title Case verwende, ist, dass die Summen viele gemeinsame Faktoren haben und die Länge der Zahl verringern. Dies könnte definitiv auf verschiedene Golfsprachen portiert werden, um viele Bytes zu sparen, was ich auch tun könnte. siehe unten!


05AB1E , 14 10 Bytes

ÇO•F;_â•s%

Probieren Sie es online aus!

Gleiche Methode wie oben - Eingabe in Groß- und Kleinschreibung, Ausgabe entweder als 0 für falsch oder als positive Ganzzahl für wahr

1 Noodle9 Nov 03 2020 at 23:12

C (gcc) , 46 42 41 Bytes

4 Bytes dank Gastropner gespart !!!
Dank Samathingamajig ein Byte gespart !!!

f(char*s){s=*s-80&&*s-77&&*s-67&s[3]-87;}

Probieren Sie es online aus!

Gibt die Farbe in Großbuchstaben ein und gibt \ zurück$1\$für eine Farbe des Regenbogens oder \$0\$ Andernfalls.

1 anatolyg Dec 07 2020 at 14:47

x86-Maschinencode, 8 Bytes

Hexdump:

6b 01 e7 c1 e8 0a d6 c3

Multipliziert den 32-Bit-Wert beim String-Start mit -25und extrahiert Bit 9 aus dem Ergebnis. Rückgabe al = -1für Regenbogenfarben und al = 0für nicht standardmäßige Farben .

Demontage:

6B 01 E7             imul        eax,dword ptr [ecx],0FFFFFFE7h  
C1 E8 0A             shr         eax,0Ah  
??                   ?? ?? 
C3                   ret  

Hier steht ?? ??die SALCAnweisung "undokumentiert" .

1 cnamejj Dec 06 2020 at 22:30

GAWK, 18 16 Bytes

( -2 danke an Dominic van Essen )

2>$0=/[de]/*!/p/

Probieren Sie es online aus!

Übersetzung von Neils has "d" or "e" but not "p"Logik. Wird verwendet "2>", um sicherzustellen, dass die Bedingung für jede Eingabe immer erfüllt ist, und setzt $0auf truey / falsey, damit die Standardaktion, dh, print $0das Ergebnis ausgibt.

Lyxal Nov 03 2020 at 21:34

05AB1E , 16 Bytes

.•4W'bÓ´€‚Γ•I2£å

Probieren Sie es online aus!

Dies nutzt die Tatsache, dass es einen festen Satz möglicher Eingaben gibt.