अगला रंग


20

चुनौती

सात रंगों के रूप में इंद्रधनुष पर विचार करें, जैसा कि स्ट्रिंग द्वारा दर्शाया गया है Red Orange Yellow Green Blue Indigo Violet
आपका कार्य एक ऐसा प्रोग्राम बनाना है जो इन्हीं रंगों में से एक इनपुट के रूप में प्राप्त करता है और क्रम इंद्रधनुष के रंग के बगल में आउटपुट करता है। इसमें ओवरलैपिंग शामिल हैViolet -> Red

इनपुट

इंद्रधनुष के रंगों में से एक से युक्त एक स्ट्रिंग।

उत्पादन

इंद्रधनुष के क्रम रंग में अगला।

नियम

  • रंग नाम केस संवेदी होते हैं। उन्हें इस पद में शामिल मामले से मेल खाना चाहिए।
  • इनपुट हमेशा मान्य होगा। अमान्य इनपुट के लिए किसी भी व्यवहार की अनुमति है।
  • यह कोड गोल्फ है, इसलिए बाइट्स की सबसे कम राशि जीतती है!

उदाहरण इनपुट और आउटपुट

Input -> Output
Red -> Orange
Orange -> Yellow
Yellow -> Green
Green -> Blue
Blue -> Indigo
Indigo -> Violet
Violet -> Red

1
"कम से कम एक उदाहरण इनपुट और आउटपुट प्रदान करें। सुनिश्चित करें कि वे आपके अपने विवरण से मेल खाते हैं कि इनपुट कैसा दिखना चाहिए।" क्या आप अपनी खुद की चुनौती पोस्ट का वर्णन कर रहे हैं? या यह समाधान के लिए एक आवश्यकता है?
पुनरावर्ती

6
क्या लोअर केस के रंग ठीक हैं?
एमिग्ना

4
लेकिन जब आप 'ग्रे' तक पहुंचते हैं तो क्या होता है? ;)
AJFaraday

1
@Emigna जिस तरह से ओपी ने सवाल उठाया, मुझे लगता है कि आप चुन सकते हैं कि ऊपरी मामला, कम मामला, या मामला असंवेदनशील है। Provide at least one example input and output. Make sure they match your own description of what the input should look like.
sonrad10

1
रिक्त स्थान ठीक हैं?
ivzem

जवाबों:


2

SOGL V0.12 , 23 बाइट्स

k‰³d∆|ΝμHō↑≥░δ÷f‘θ⁽,WIw

यह कोशिश करो!

स्पष्टीकरण:

...‘θ⁽,WIw  
...‘        push "red orange yellow green blue indigo violet"
    θ       split on spaces
     ⁽      uppercase the 1st letter of every item (SOGLs dictionary only has lowercase words)
      ,W    get the inputs index in the array
        I   increment
         w  and get that item in the array, wrapping if necessary

22

जावास्क्रिप्ट, 68 बाइट्स

s=>'RedOrangeYellowGreenBlueIndigoVioletRed'.match(s+'(.[a-z]*)')[1]

इनपुट के लिए "Red", यह फ़ंक्शन पहले /Red(.[a-z]*)/स्ट्रिंग से मिलान करने के लिए एक RegExp का निर्माण करता है 'RedOrangeYellowGreenBlueIndigoVioletRed'और फिर पहले कैप्चर परिणाम को वापस करता है।


इनपुट "वायलेट" के लिए क्या परिणाम है? मुझे लगता है कि आपको पाठ को 'RedOrangeYellowGreenBlueIndigoVioletRed'कुछ या कुछ में बदलना चाहिए
ओलिवियर ग्रेजायर

1
@ ओलिवियरग्रेगायर ओके, जोड़ा गया। उत्तर द्वारा पोस्ट किए जाने के बाद ओपी द्वारा इस नियम को बदल दिया जाता है।
tsh

मुझे नहीं पता था: मैंने केवल प्रश्न का अंतिम संस्करण देखा था।
ओलिवियर ग्रेजायर

9

पर्ल 5 -p , 58 57 बाइट्स

#!/usr/bin/perl -p
$_={(Red,Orange,Yellow,Green,Blue,Indigo,Violet)x2}->{$_}

इसे ऑनलाइन आज़माएं!

अब चुनौती को रेगीक्स समाधान को चक्रीय करने के लिए बदल दिया गया है

say RedOrangeYellowGreenBlueIndigoVioletRed=~/$_(.[a-z]+)/

अब और इष्टतम नहीं है (दोहरे के कारण Red)

इसके अलावा 57 बाइट्स:

#!/usr/bin/perl -p
$_=(Indigo,Blue,Violet,Yellow,Orange,Red,Green)[ord>>2&7]

इसे ऑनलाइन आज़माएं!


7

पायथन , 79 बाइट्स

z="Red Orange Yellow Green Blue Indigo Violet".split()*2
dict(zip(z,z[1:])).get

इसे ऑनलाइन आज़माएं!

संभालता है Violet -> Red। वांछित कार्य दूसरी पंक्ति में गुमनाम रूप से दिया जाता है।


80 बाइट्स

lambda x:"Red Orange Yellow Green Blue Indigo Violet Red".split(x)[1].split()[0]

इसे ऑनलाइन आज़माएं!


7

पर्ल 6 , 56 बाइट्स

{<Indigo Blue Violet Yellow Orange Red Green>[.ord/4%8]}

इसे ऑनलाइन आज़माएं!

इस तथ्य को उजागर करता है कि प्रत्येक रंग के पहले अक्षर के एएससीआईआई कोड के 2-4 बिट्स 0-6 के नक्शे पर होते हैं।

say map (*.ord +> 2) % 8, <R O Y G B I V>
# (4 3 6 1 0 2 5)

यहां एक अच्छा गैर-प्रतिस्पर्धात्मक समाधान है जो "इंडिगो" और "वायलेट" (38 वर्ण, 59 बाइट्स) के बजाय "बैंगनी" का उपयोग करता है:

{'🍎🧡💛💚💙💜🍎'.uninames~~m/$^a.\S+.<(\S+/}

इसे ऑनलाइन आज़माएं!


सर्वशक्तिमान यूनिकोड के नाम
वीजुन झोउ

यह समाधान जितना दिलचस्प है, यह अंततः कल्पना का पालन नहीं करता है। क्या आप उत्तर में एक आज्ञाकारी संस्करण शामिल कर सकते हैं और इसे परिशिष्ट के रूप में पोस्ट कर सकते हैं?
डेनिस

%12कोकोनट के लिए एक समाधान भी है , लेकिन निश्चित रूप से यह नट है।
वीजुन झोउ

5

रूबी -n , ६२ 60 बाइट्स

-2 असोन तुहिद द्वारा।

p"RedVioletIndigoBlueGreenYellowOrangeRed"[/.[a-z]+(?=#$_)/]

इसे ऑनलाइन आज़माएं!

रूबी के लिए भी रेगेक्स दृष्टिकोण आशाजनक लग रहा है। हालांकि, मैं एक छोटे से समाधान पर पहुंच गया, जिसमें लुकहैड का उपयोग किया गया और सीधे समूह को कैप्चर करने के बजाय मैच को प्रिंट किया गया। रंगों की सूची उल्टी दिशा में है क्योंकि लुकहैड लुकबाइंड की तुलना में 1 बाइट सस्ता है।


बहुत अच्छा, -2 बाइट्स ( /#$_/इंटरपोलेट्स)
असोन तुहिद

4

लाल , 87 बाइट्स

func[c][print first find/tail[Red Orange Yellow Green Blue Indigo Violet Red]to-word c]

इसे ऑनलाइन आज़माएं!


4
यह पता नहीं है कि यह भाषा क्या है, आपका कोड कैसे काम करता है या क्या है, या क्या यह बिल्कुल भी गोल्फ है, लेकिन इस चुनौती के लिए "रेड" नामक भाषा का उपयोग करने के लिए एक +1 है।
msh210

@ msh210 यह निकटता से संबंधित है संबंधित (सापेक्ष अभिव्यक्ति-आधारित वस्तु भाषा)। भाषा कोड, डेटा और मेटाडेटा को एक ही तरीके से दर्शाती है - [] द्वारा निरूपित ब्लॉक के साथ। वर्तमान लाल वितरण केवल 1.1 एमबी है और इसमें कंसोल / इंटरपेटर, साथ ही संकलक शामिल हैं जो विभिन्न प्लेटफार्मों पर क्रॉस-कंप्लीट कर सकते हैं। मेरे कोड को इस बात के लिए तैयार किया गया है कि मैंने विभिन्न समाधानों की कोशिश की और उन सभी स्थानों को हटा दिया जो मैं कर सकता हूं। बुरी बात यह है कि अंतरिक्ष लगभग हर जगह सीमांकक है। सभी गणित के भावों को ऑपरेटर के दोनों तरफ रिक्त स्थान रखने की आवश्यकता होती है जैसे: b + c (a = b + c)।
गैलेन इवानोव

4

05AB1E , 30 बाइट्स

“†¾›ÈŠÛˆ¨‡—ëßigo°Íolet“#™DIk>è

इसे ऑनलाइन आज़माएं!

व्याख्या

“†¾›ÈŠÛˆ¨‡—ëßigo°Íolet“          # push a string of colours
                       #         # split on spaces
                        ™        # title-case each
                         D       # duplicate
                          Ik     # get the index of the input
                            >    # increment
                             è   # get the element at that index

3

एक्सेल, 85 बाइट्स

=CHOOSE(MOD(CODE(A1),12),"green","indigo","yellow",,,"orange","blue",,"violet","red")

लोअरकेस नाम का उपयोग करता है।

उप्पेरेज़ अक्षर 86 बाइट्स के साथ एक ही दृष्टिकोण:

=CHOOSE(MOD(CODE(A1),12),"Violet","Red",,,"Green","Indigo","Yellow",,,"Orange","Blue")

3

हास्केल , 80 71 75 बाइट्स

9 बाइट को छोटा करने के लिए लकोनी का धन्यवाद!

g x=snd(span(/=x)$words"Red Orange Yellow Green Blue Indigo Violet Red")!!1

इसे ऑनलाइन आज़माएं!


एक और समाधान, थोड़ा अधिक मुहावरेदार, लेकिन मैं इसे छोटा नहीं कर सका:

data R=Red|Orange|Yellow|Green|Blue|Indigo|Violet deriving(Enum,Read,Eq)
succ.read

यह आवश्यकता के Readकारण प्राप्त करने की आवश्यकता है कि इनपुट एक स्ट्रिंग है और कम से कम Eqया Showतो समानता के लिए परीक्षण करने या परिणाम दिखाने के लिए।


71 बाइट्स के साथ span: इसे ऑनलाइन आज़माएं!
लकोनी

@ लिकोनी वाह, यह अच्छा है, धन्यवाद! मैं भूल गया span...
क्रिस्टियन लुपस्कु

1
ओपी ने स्पष्ट किया कि Violetचारों ओर लपेटना चाहिए Red, इसलिए आपको Redफिर से स्ट्रिंग के अंत में जोड़ने की आवश्यकता है ।
लकोनी

मुझे दूसरे का विचार बहुत पसंद है! हालांकि succ Violetकाम नहीं करेगा Enumचारों ओर लपेटो नहीं :(
ბიმო

@ बीएमओ बिल्कुल। जब मैंने उस संस्करण को बनाया तो मुझे रैप-अराउंड आवश्यकता के बारे में पता नहीं था।
क्रिस्टियन लुपस्कू

3

रेटिना , 65 58 बाइट्स

$
(.[a-z]+)
L$:`RedOrangeYellowGreenBlueIndigoVioletRed
$1

इसे ऑनलाइन आज़माएं!

व्याख्या

$
(.[a-z]+)

हम (.[a-z]+)इनपुट के लिए संलग्न करके शुरू करते हैं, जिससे यह एक रेगीक्स में बदल जाता है जो इनपुट रंग से मेल खाता है, इसके तुरंत बाद एक और रंग (बाद वाले को कैप्चर करना) होता है।

L$:`RedOrangeYellowGreenBlueIndigoVioletRed
$1

अब :चरण के इनपुट को अपने स्वयं के रेगेक्स के साथ स्वैप करता है। तो पिछला परिणाम रेक्सक्स बन जाता है और यह रंगों की सूची के विरुद्ध मेल खाता है। (एकल) मैच को उसके पहले कैप्चरिंग ग्रुप (यानी चक्र में अगला रंग) के साथ बदल दिया जाता है और वापस कर दिया जाता है। कार्यक्रम के अंत में आउटपुट स्वचालित रूप से होता है।



हाँ, मैंने केविन के समाधान को देखने के बाद अपनी टिप्पणी को हटा दिया। सेट करने \1और लक्ष्य पर कूदने से कई बाइट बर्बाद हो जाती हैं: :-)
टन हास्पेल

@ टोनहोस कुछ मिला। :)
मार्टिन एंडर

1
@ केविनक्रूजसेन आपके और टन के धक्के के लिए धन्यवाद, बिना परिसीमन के समाधान के लिए, मैंने 58-बायटर ढूंढकर समाप्त किया। ;)
मार्टिन एंडर

3

विम, 59 56 53 52 बाइट्स

-1 बाइट tsh के लिए धन्यवाद

2IYellow Green Blue Indigo Violet Red Orange <Esc>*wywVp

1
2 इंडियन ग्रीन ब्लू इंडिगो वायलेट रेड ऑरेंज <Esc> * wywVp
tsh

3

जावा (JDK 10) , 77 बाइट्स

s->"Red Orange Yellow Green Blue Indigo Violet Red".split(s)[1].split(" ")[1]

इसे ऑनलाइन आज़माएं!

क्रेडिट



@ केविनक्रूजसेन कि कुछ अच्छा रेगेक्स फू जो आपको मिला है!
ओलिवियर ग्रेगोइरे

1
मुझे याद है जब मैं एक बार एक विभाजन की तलाश कर रहा था जो कि डिमाइटर को अलग किए गए आइटम के रूप में रखता है जो उत्तर मुझे मिला था, जिसमें सीमांकक को या तो अग्रणी या अनुगामी भाग के रूप में छुपाए रखने के विकल्प थे, और लगा कि यह यहां उपयोगी होगा। :) यहाँ वह उत्तर है, जिसमें अन्य दो विकल्पों के लिए लुक-फ़ॉरवर्ड / लुक-बैक शामिल है।
केविन क्रूज़सेन

1
एक बाइट सहेजें:s->"Red Orange Yellow Green Blue Indigo Violet Red".split(s)[1].split(" ")[1]
ओकेक्स

2

नारियल , 79 बाइट्स

s->"# Violet Red # # Green Indigo Yellow # # Orange Blue".split()[ord(s[0])%12]

इसे ऑनलाइन आज़माएं!


नारियल नहीं जानते। लेकिन लगता है कि आपको लोअरकेस अक्षरों का उपयोग करके 2 बाइट्स में कटौती करने में सक्षम होना चाहिए, क्योंकि इससे अधिकतम s->"# green indigo yellow # # orange blue # violet red".split()[ord(s[0])%12]
मोलूलो

सुझाव के लिए @ernisch धन्यवाद। हालांकि मैं इंतजार करूंगा जब तक कि ओपी ने जवाब नहीं दिया कि क्या लोअरकेस अक्षर अपडेट करने से पहले स्वीकार्य हैं।
लकोनी

2

हस्क , 28 बाइट्स

S!o→€⁰w¨ṙ}ΘΞĠ«ẇ₇G²€ḃλBżḃIÿö⌉

इसे ऑनलाइन आज़माएं!

शायद तर्कों के प्रबंधन के लिए बेहतर विकल्प हैं, लेकिन यह सबसे अच्छा है जो मुझे मिल सकता है

व्याख्या

S!o→€⁰w¨ṙ}ΘΞĠ«ẇ₇G²€ḃλBżḃIÿö⌉
       ¨ṙ}ΘΞĠ«ẇ₇G²€ḃλBżḃIÿö⌉    Compressed string with all the colors
                                "Red Orange Yellow Green Blue Indigo Violet"
      w                         Split on spaces
S                               Pass the list to both the following functions:
    €⁰                          1) Find the index of the input in the list
  o→                                  and increase it by one
 !                              2) Get the element of the list at the
                                   resulting position (indexing is cyclical)

2

स्टैक्स , 31 30 29 बाइट्स

ÇôF┘≡▓ƒ◄╙>┘☼░⌂╪B<U[ÇQ╒eöΣQ╔÷n

इसे चलाएं और डीबग करें

यह रिंग ट्रांसलेशन इंस्ट्रक्शन का उपयोग करता है। यह प्रत्येक तत्व को एक सरणी में "डिकोडर रिंग" से निम्नलिखित के साथ बदल देता है। आमतौर पर, यह एक स्ट्रिंग में चरित्र प्रतिस्थापन करने के लिए उपयोग किया जाता है, लेकिन इसे पूरे स्ट्रिंग पर भी उपयोग किया जा सकता है, अगर यह एक सिंगलटन सरणी में लिपटा हो।

यहाँ एक ही कार्यक्रम के unpacki, ungolfed, ascii प्रतिनिधित्व टिप्पणी है।

]   wrap input in singleton array
`5^bZ_9G*h]h%oM~X9e-0ZQJkb2`    compressed string literal with color names
:.j title case and split on spaces
:t  do ring translation

इसको चलाओ


ठीक है ... मुझे इन भाषाओं से प्यार है =)
लोलाड

3
वायलेट के लिए असफल -> लाल
वीजुन झोउ

1
@ WeijunZhou: इस परीक्षण के मामले को इस सबमिशन के बाद जोड़ा गया था ।
पुनरावर्ती

1
@ WeijunZhou: मैंने उस परीक्षण मामले को ठीक किया और एक बाइट का मुंडन किया।
पुनरावर्ती

1
@ वीजुनझोऊ: यह सी # और जेएस स्टैक्स के कार्यान्वयन के बीच एक असंगतता प्रतीत होती है। मैं एक परीक्षण मामला जोड़ूंगा और अगली रिलीज के लिए व्यवहार को सामान्य करूंगा।
पुनरावर्ती


2

आर , 109 93 बाइट्स

function(x){y=c("Red","Orange","Yellow","Green","Blue","Indigo","Violet");y[match(x,y)%%7+1]}

इसे ऑनलाइन आज़माएं!

-16 सलाह के उपयोग के लिए Giuseppe के लिए धन्यवादmatch


PPCG में आपका स्वागत है! यह एक अच्छा पहला जवाब है। मुझे लगता match(y,x)%%7+1है कि आपके ifबयान की तुलना में अनुक्रमण के लिए कम है । इसके अतिरिक्त, बिलिन colors()में बहुत सारे रंग के नाम हैं, यदि आप सूचकांक पाते हैं :)
Giuseppe

उफ़, लगता है जैसे colors()शामिल नहीं है indigo! आह, अभी भी, +1!
ग्यूसेप

धन्यवाद! matchयहाँ बेहतर है
DS_UNI


और हाँ, मैंने पहली बार उपयोग करने की कोशिश की colors(): /
DS_UNI

1

बैच, 97 बाइट्स

@set s=Red Orange Yellow Green Blue Indigo Violet Red
@call set s=%%s:*%1 =%%
@echo %s: =&rem %

स्पष्टीकरण: callदूसरी पंक्ति में पैरामीटर को कमांड में प्रतिस्थापित करने और इसका मूल्यांकन करने, इसे उदाहरण में बदलने का प्रभाव होता है set s=%s:Red =%, जो पैरामीटर को शामिल करने वाले स्ट्रिंग के उपसर्ग को हटा देता है। तीसरी पंक्ति पर प्रतिस्थापन तब बयान विभाजक और टिप्पणियों के साथ सभी रिक्त स्थान को बदल देता है। यह काम करता है क्योंकि स्ट्रिंग प्रतिस्थापन पार्स करने से पहले होता है।


1

रूबी -n , 75 69 बाइट्स

a=%w{Red Orange Yellow Green Blue Indigo Violet};p a[-~(a.index$_)%7]

इसे ऑनलाइन आज़माएं!


1
i&&बात क्यों ? कोई के लिए जांच की जरूरत nilके रूप में "किसी भी त्रुटि पर ध्यान न दें अगर यह एक रंग नहीं है।"
manatwork

@manatwork मैंने इसे "किसी भी त्रुटि को पकड़ने और अनदेखा करने" के रूप में समझा, लेकिन ठीक है।
असोन तुहिद

1

जूलिया 0.6 , 76 बाइट्स

f(s)=match(Regex("$s(.[a-z]*)"),"RedOrangeYellowGreenBlueIndigoViolet"^2)[1]

इसे ऑनलाइन आज़माएं!

यह वायलेट-> लाल को शक्ति के साथ स्ट्रिंग को रीसाइक्लिंग करके संभालता है ^ ऑपरेटर के ।

यहां रेगेक्स के बिना थोड़ा लंबा समाधान है:

g(s,l=split("Red Orange Yellow Green Blue Indigo Violet"," "))=l[(findin(l,[s])[1])%7+1]

1

पॉवरशेल , 74 बाइट्स

(-split("Red Orange Yellow Green Blue Indigo Violet "*2-split$args)[1])[0]

इसे ऑनलाइन आज़माएं!

स्ट्रिंग "Red ... Violet "और स्ट्रिंग को दो से बाहर निकालता है ताकि Violet -> Redपरीक्षण के मामले को ठीक से संभाल सके । फिर हम -splitइनपुट पर उस स्ट्रिंग को $argsदो स्ट्रिंग्स की एक सरणी देते हैं। हम उसके [1]बाद दूसरा स्ट्रिंग लेते हैं-split व्हाट्सएप पर हमें स्ट्रिंग की एक सरणी देने के लिए और पहले लेते हैं [0]

उदाहरण के लिए, इनपुट के लिए, "Yellow"पहले चरण में परिणाम होगा @("Red Orange ", " Green Blue Indigo ... Indigo Violet ")। हम उस में से एक को लेते हैं, इसे व्हाट्सएप पर विभाजित करते हैं (जो व्हाट्सएप को हटा देता है), जिसके परिणामस्वरूप @("Green", "Blue", ... "Violet"), इसलिए [0]इसके अगले उचित स्ट्रिंग में परिणाम मिलते हैं।


1

आईबीएम / लोटस नोट्स फॉर्मूला भाषा, 79 74 बाइट्स

@Left(@Right("Red Orange Yellow Green Blue Indigo Violet Red ";a+" ");" ")

79 के लिए पिछला संस्करण:

R:=@Explode("Red,Orange,Yellow,Green,Blue,Indigo,Violet,Red");R[@Member(a;R)+1]

नामक एक संपादन योग्य पाठ क्षेत्र से इनपुट लेता है a

सूत्र भाषा के लिए कोई TIO नहीं है इसलिए यहां कुछ स्क्रीनशॉट है।

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें



1

Kotlin , 73 बाइट्स

x->"RedOrangeYellow Green  BlueIndigoVioletRed".substringAfter(x).take(6)

इसे ऑनलाइन आज़माएं!

इस तथ्य का लाभ उठाते हुए कि कई रंग 6 वर्ण हैं, जो कि 6 वर्णों को लंबा करने के लिए रिक्त स्थान के साथ उपसर्ग नहीं हैं। उम्मीद है कि यह स्वीकार्य है कि कुछ रंग उनके सामने रिक्त स्थान के साथ आउटपुट होते हैं।
जैसे रेड है " Red", ब्लू है" Blue"


1

स्माइलबेसिक, 94 84 बाइट्स

C$="Red   OrangeYellowGreen Blue  IndigoViolet
INPUT I$?MID$(C$*2,INSTR(C$,I$)+6,6)

1

Gema , 67 वर्ण

*=@subst{*\?<J>=\?\$2\;\?=;RedOrangeYellowGreenBlueIndigoVioletRed}

नमूना रन:

bash-4.4$ echo -n Yellow | gema '*=@subst{*\?<J>=\?\$2\;\?=;RedOrangeYellowGreenBlueIndigoVioletRed}'
Green

bash-4.4$ echo -n Violet | gema '*=@subst{*\?<J>=\?\$2\;\?=;RedOrangeYellowGreenBlueIndigoVioletRed}'
Red

गामा , ५ ९ अक्षर

R=Orange
O=Yellow
Y=Green
G=Blue
B=Indigo
I=Violet
V=Red
*=

बोरिंग एक। विनम्र दृष्टिकोण कभी, लेकिन काफी कम।

नमूना रन:

bash-4.4$ gema 'R=Orange;O=Yellow;Y=Green;G=Blue;B=Indigo;I=Violet;V=Red;*=' <<< 'Yellow'
Green

bash-4.4$ gema 'R=Orange;O=Yellow;Y=Green;G=Blue;B=Indigo;I=Violet;V=Red;*=' <<< 'Violet'
Red

1

क्यू / केडीबी + , ५ ९ ५५ बाइट्स

समाधान:

.[!;2 8#($)`Red`Violet`Indigo`Blue`Green`Yellow`Orange]

उदाहरण:

q).[!;2 8#($)`Red`Violet`Indigo`Blue`Green`Yellow`Orange]"Red"
"Violet"
q).[!;2 8#($)`Red`Violet`Indigo`Blue`Green`Yellow`Orange]"Orange"
"Red"
q).[!;2 8#($)`Red`Violet`Indigo`Blue`Green`Yellow`Orange]"Blue"
"Green"

स्पष्टीकरण:

रंग => अगला रंग का शब्दकोश बनाएं, इनपुट शब्दकोश की कुंजी है:

.[!;2 8#($)`Red`Violet`Indigo`Blue`Green`Yellow`Orange] / the solution
.[ ;                                                  ] / apply multiple args to function
           `Red`Violet`Indigo`Blue`Green`Yellow`Orange  / list of colours
         ($)                                            / convert to strings
    2 8#                                                / reshape into 2x8 grid
  !                                                     / create dictionary

बक्शीश:

यह K4 में 53 बाइट्स है:

.[!;2 8#$`Red`Violet`Indigo`Blue`Green`Yellow`Orange]


1

sed, 72 बाइट्स

s/$/%RedOrangeYellowGreenBlueIndigoVioletRed/;s/(.+)%.*\1(.[a-z]+).*/\2/

इसे ऑनलाइन आज़माएं

उदाहरण 1:

इनपुट:

Red
Orange
Yellow
Green
Blue
Indigo
Violet

आउटपुट:

Orange
Yellow
Green
Blue
Indigo
Violet
Red

उदाहरण 2:

इनपुट:

Indigo
Yellow
Red
Red
Blue
Green
Orange
Violet
Green
Green
Green
Blue
Blue
Violet

आउटपुट:

Violet
Green
Orange
Orange
Indigo
Blue
Yellow
Red
Blue
Blue
Blue
Indigo
Indigo
Red

साइट पर आपका स्वागत है! क्या आप एक ऑनलाइन दुभाषिया का लिंक प्रदान कर सकते हैं, जैसे कि इसे ऑनलाइन आज़माएं! हम इस समाधान का परीक्षण कहाँ कर सकते हैं?
caird coinheringaahing

@cairdcoinheringaahing: हाय, स्वागत और वेबसाइट की सिफारिश के लिए बहुत बहुत धन्यवाद! मैंने अपना उत्तर उस पृष्ठ के लिंक के साथ अद्यतन किया है, जहाँ आप ऑनलाइन कोड का परीक्षण कर सकते हैं।
लुकास्ब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.