प्रत्येक इनपुट चरित्र के लिए अपने कार्यक्रम में पहला स्थान आउटपुट करें


43

चुनौती

एक गैर-खाली प्रोग्राम / फ़ंक्शन लिखें p, जो एक गैर-खाली इनपुट स्ट्रिंग दिया गया है s, के स्रोत कोड में प्रत्येक वर्ण की पहली घटना की स्थिति को आउटपुट करता sहै p

उदाहरण के लिए, यदि आपका प्रोग्राम है

main() { cout << magic << cin }
^0   ^5   ^10  ^15  ^20  ^25

और यह एक इनपुट प्राप्त करता है abcd{, आउटपुट होना चाहिए

[1, x, 9, x, 7] (0-based)        [2, x, 10, x, 8] (1-based)

यहाँ, xकिसी भी उत्पादन है कि एक चरित्र की स्थिति के लिए एक वैध उत्पादन नहीं है का प्रतिनिधित्व करता है (उदाहरण के लिए, एक नकारात्मक संख्या, 0आप 1 आधारित अनुक्रमण उपयोग करते हैं, NaN, Inf, स्ट्रिंग potato, अपने कार्यक्रम की दूरी से बड़ी संख्या, आदि)।

प्रतिबंध

स्रोत कोड को पढ़ने की अनुमति नहीं है (जैसे एक उचित क्वीन में)। टिप्पणियों के उपयोग की अनुमति है, लेकिन आपके स्कोर की ओर गिनती है।

इनपुट और आउटपुट एक उचित प्रारूप में किया जा सकता है, लेकिन असंदिग्ध होना चाहिए (केवल अतिरिक्त सीमांकक, कोई randधारा और यह दावा करते हुए कि उत्तर कहीं है), सुसंगत (जैसे, xऊपर से हमेशा समान मूल्य होना चाहिए) और मानव- पठनीय ; उदाहरण के लिए, एक स्ट्रिंग या एक चरित्र सरणी। आप मान सकते हैं कि इनपुट मुद्रण योग्य ASCII वर्णों की एक स्ट्रिंग (या सरणी) है; पूरे यूनिकोड सेट को संभालने की कोई आवश्यकता नहीं है।


अपने कोड में कस्टम कोड-पेज या गैर-प्रिंट करने योग्य अस्की?

यदि आपकी भाषा एक कस्टम कोड-पेज (जेली, एपीएल, आदि) का उपयोग करती है, तो आपको इसे ध्यान में रखना चाहिए (इसलिए किसी प्रोग्राम €æÆको [1, x, 2]इनपुट के लिए आउटपुट करना होगा €%æ)। केवल आउटपुट के लिए केवल गैर- ASCII वर्णों का उपयोग करना -1(चूंकि इनपुट ASCII- केवल है) एक वैध समाधान नहीं है। आप मान सकते हैं कि आपका कार्यक्रम मूल रूप से आपके कस्टम कोडपेज को स्वीकार करता है, अर्थात, यदि आपके प्रोग्राम में किसी कैरेक्टर Aको पूर्णांक 65(ASCII एन्कोडिंग) में बदलने की विधि है , तो आप मान सकते हैं कि यह अब आपके कोडपेज में 65 वें वर्ण को रूपांतरित करता है 65


निम्नलिखित चुनौती पर प्रेरित: स्थिति जागरूकता


क्या पूंजीकरण मायने रखता है?
कृतिका लिथोस


@KritiiLithos यह वास्तव में करता है।
सांचेस

यदि मेरा प्रोग्राम केवल 0 से 9 तक सूचकांकों का उपयोग करता है , तो क्या मुझे एक विभाजक की आवश्यकता है या मैं आउटपुट कर सकता हूं, जैसे 01030708070?
डेनिस

@ डेनिस नहीं, आप नहीं। यह असंदिग्ध, सुसंगत और मानव पठनीय है। एक विभाजक की आवश्यकता को चुनौती के लिए कुछ भी दिलचस्प नहीं जोड़ा जाएगा, इसलिए हर तरह से अपनी कम बाइट गिनती का दुरुपयोग करें। ;)
Sanchises

जवाबों:


24

पायथन 2, 55 बाइट्स

a=" )dfi(+m,nprut.';";print map(('a="'+a).find,input())

एक स्ट्रिंग के साथ शुरू होता है जिसमें कोड में उपयोग किए गए सभी वर्ण होते हैं, और फिर इंडेक्स खोजते हैं


5
मैं नहीं देखता कि यह कैसे उबाऊ जवाब है। मुझे लगता है कि मानक क्वीन का उपयोग करना इससे बहुत कम दिलचस्प है। :)
मार्टिन एंडर

चूंकि यह पायथन 2 है, इसलिए यह अधिकांश इनपुट पर नहीं टूटेगा। यदि यह टूटता है, तो आपको उपयोग करना होगा raw_input
TIDB

@TidB हम्म, मुझे नहीं लगता? आपके पास क्या इनपुट है?
रॉड

@ रोड नेवमाइंड, मैं बस थोड़ा सा गूंगा हो रहा था। जब आप एक पुनरावृत्त इनपुट करेंगे तो यह हमेशा काम करेगा। मुझे मूर्ख।
TIDB

12

लेंजेज , 56,623 बाइट्स

नीचे पहले 256 बाइट्स का एक हेक्सडंप है। शेष बाइट्स को मनमाने ढंग से चुना जा सकता है।

0000000: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f  ................
0000010: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f  ................
0000020: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f   !"#$%&'()*+,-./
0000030: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f  0123456789:;<=>?
0000040: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f  @ABCDEFGHIJKLMNO
0000050: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f  PQRSTUVWXYZ[\]^_
0000060: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f  `abcdefghijklmno
0000070: 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f  pqrstuvwxyz{|}~.
0000080: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f  ................
0000090: 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f  ................
00000a0: a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af  ................
00000b0: b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf  ................
00000c0: c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf  ................
00000d0: d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df  ................
00000e0: e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef  ................
00000f0: f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff  ................

आउटपुट बाइट्स में है, ब्रेनफॉक एट अल के लिए प्रथागत।

यह काम किस प्रकार करता है

यह विशेष रूप से एक सरल बिल्ली कार्यक्रम है ,[.,]

स्रोत कोड में सभी 256 बाइट मान शामिल हैं, इसलिए इसमें प्रत्येक बाइट का सूचकांक इसके मूल्य से मेल खाता है।


4
हम्म मुझे लगता है कि पेंग्वेंज एकमात्र ऐसी भाषा है, जहां लोग परिमाण के तीन आदेशों से
बहिष्कृत हैं

2
पेंग्वेज भी एकमात्र भाषा है जो लगातार धोखा देने के तरीके ढूंढती है जो अन्य भाषाओं में दूरस्थ रूप से प्रतिस्पर्धी नहीं होगी। : पी
डेनिस

+[,.]ज्यादा बेहतर स्कोर के लिए नहीं बना?
Sanchises

@ सेंचुरीज़ जो लगभग 12,000 बाइट्स बचाएगी, लेकिन यह अंत में एक अतिरिक्त नल बाइट भी प्रिंट करेगी।
डेनिस

2
ठीक है, मुझे लगता है कि अशक्त बाइट है इनपुट (भले ही यह के समारोह स्ट्रिंग समाप्त करने के लिए है) में है, और अपने कार्यक्रम में 0 की स्थिति में हो सकता है ...;)
Sanchises

10

पेंगुएज , 1.22 ई 7 बाइट्स

12263215 NULबाइट्स से मिलकर, (हेक्स 0x00)

NULप्रत्येक वर्ण के लिए आउटपुट जो स्रोत में प्रकट नहीं होता है।

इसका उपयोग यह है कि इनपुट में ए कभी नहीं होगा NUL, इसलिए हम हमेशा उस राशि का आउटपुट करते NULहैं जो इनपुट में वर्ण हैं।

यह निम्नलिखित ब्रेनफक कार्यक्रम का अनुवाद करता है

,[[-].,]

और एक टूट के साथ ...

,[[-].,]
,[    ,]    #Basic Input loop.
  [-]       #Zero out the cell.
     .      #Print it (A NUL).

यह सिर्फ एक गोल्फ की भाषा के रूप में पेंग्विज की विशाल शक्ति को दर्शाता है। इससे डर लगता है।


2
इस तरह के एक चतुर ruse, आप लगभग जीत गए ... क्या आपने रिवर्स भी कोशिश की, Ie 0x00 बाइट्स और 1-इंडेक्सिंग?
सांचेस

मैं प्यार करता था, लेकिन Brainfuck / Lenguage (या कम से कम, दुभाषिया मैं उपयोग कर रहा हूँ) EOF और 0x00 के बीच अंतर नहीं कर सकता, इसलिए मैं वास्तव में चुनौती का जवाब देने में असमर्थ होगा।
अताको

ब्रेनफक एट अल। आमतौर पर पूर्णांक को बाइट्स के रूप में मुद्रित करने की अनुमति है, अर्थात, आप 1 के लिए SOH, 0. के लिए NUL प्रिंट करेंगे
डेनिस

@ सेंचुरीज़ क्या आप पुष्टि कर सकते हैं कि यहाँ मामला है?
डेनिस

1
,[>.,]कम नहीं होगा ?
जो किंग

8

जेली , 10 9 बाइट्स

“ṾiЀƓv”v

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

यह काम किस प्रकार करता है

“ṾiЀƓv”v  Main link. No arguments.

“ṾiЀƓv”   Set the left argument and the return value to s := 'ṾiЀƓv'.
        v  Execute the string s as a monadic Jelly program with argument s.

 Ṿ         Uneval; yield a string representation of s, i.e., r := '“ṾiЀƓv”'.
     Ɠ     Read one line from STDIN and evaluate it like Python would.
  iЀ      Find the index of each character in the input in r.
      v    Eval the list of indices as a monadic Jelly program with argument s.
           Why?
             This is the shortest way to add the character 'v' to the string s,
             meaning that we can use r without having to append anything.
           What?
             The v atom vectorizes at depth 1 for its left argument, meaning that
             it acts on arrays of numbers and/or characters. When fed an array of
             integers, it first converts them to strings, then concatenates the
             strings and evaluates them as a Jelly program. For example, the array
             [1, 2, 3] gets cast to the string '123', then evaluates, yielding 123.
             Something slightly different happens if the array starts with a 0. For
             example, the array [0, 1, 2] gets cast to '012' just as before, but
             Jelly views '0' and '12' as two separate tokens; numeric literals
             cannot start with a 0. Since the Jelly program is monadic, the first
             token – '0' – sets the return value to 0. Since the second token –
             '12' – is also a niladic link, the previous return value is printed
             before changing the return value to 12. Then, the program finishes
             and the last return value is printed implicitly.

8

pbrain, 402 356 340 338 329 बाइट्स

[(:<>)+,-.](>>>>>>)+([-]<<[->+>+<<]>>[-<<+>>]>>[-<+<+>>]<[->+<]<[-<->]<)+([-]+++++++[>+++++++++++++<-]>)+([-]+++++[>++++++++<-]>)+(-:<+++[->++++++<]>)+(-:++)+(-:++)+(----:+)+(-:++)+(-:+)+(-:+)+(-:+)+([-]++:++)+([>[->+>+<<]>>[-<<+>>]<:>>+:[[-]>+<]>-[<<<<[-.>]>>>>>>+>>>>>]<<[-]<<+<-]>>>)[-]>>>>>>>,[<<<<<<++<+++++++++++++:>>>>>>,]

Phew, @KritiiLithos और मैं 4 दिनों से इस पर काम कर रहे हैं।

प्रिंट 0x00अगर इनपुट प्रोग्राम में नहीं है, तो हेक्स में चार्ट (1-आधारित) का सूचकांक अन्यथा। इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

[(:<>)+,-.]
All chars listed here; like other submissions 
(>>>>>>)
@KritixiLithos added this part; I don't know what it does but saves the program
+([-]<<[->+>+<<]>>[-<<+>>]>>[-<+<+>>]<[->+<]<[-<->]<)
Comparison ;calculates z=x!=y and puts it in between x and y
Start; X _ _ _ Y
           ^
End;   X Z _ _ Y
         ^
+([-]+++++++[>+++++++++++++<-]>)
Function to add 91 to the tape
+([-]+++++[>++++++++<-]>)
Function to add 40 to the tape
+(-:<+++[->++++++<]>)
Function to add 58 to the tape
+(-:++)
Function to add 60 to the tape
+(-:++)
Function to add 62 to the tape
+(----:+)
Function to add 41 to the tape
+(-:++)
Function to add 43 to the tape
+(-:+)
Function to add 44 to the tape
+(-:+)
Function to add 45 to the tape
+(-:+)
Function to add 46 to the tape
+([-]++:++)
Function to add 93 to the tape
+([>[->+>+<<]>>[-<<+>>]<:>>+:[[-]>+<]>-[<‌​<<<[-.>]>>>>>>+>>>>>]<<[-]<<+<-]>>>)

यह अंतिम कार्य लूप है। यह [(:<>)+,-.]क्रम में चयनित वर्णों के माध्यम से छोरों और चरित्र के साथ इनपुट की तुलना करता है। अब मैं इस बारे में गहन जानकारी देने जा रहा हूं कि यह लूप कैसे काम करता है।

12-n n+2 _ n+2: _ _ _ i _ _ _ _ _ _;  n=loop counter
                  ^                ;  i=input

स्टैक एक लूप में रहते हुए ऐसा दिखता है। लूप तब तक चलेगा जब तक 12-nहै 0। फिर हमारे पास काउंटर है जो है n+2। यह काउंटर चयनित पात्रों में से प्रत्येक के लिए फ़ंक्शन की संख्या भी है। तो जब n=0, n+2पहले चरित्र के अनुरूप होगा, अर्थात [>[->+>+<<]>>[-<<+>>]<:बस यही करता है, यह काउंटर को चरित्र में परिवर्तित करता है।

एक बार पॉइंटर जहां कैरेट होता है, हम काउंटर वेरिएबल से निर्मित कैरेक्टर की तुलना इनपुट से करते हुए उनकी सुरक्षा करेंगे।

12-n n+2 _ n+2: Z _ _ i _ _ _ _ _ _;  n=loop counter
                ^                  ;  i=input

Zहै 0जब चरित्र इनपुट, या कुछ अन्य गैर शून्य पूर्णांक अन्यथा के बराबर है।

अब हम इस समानता की जांच करने के लिए एक इ-स्टेटमेंट के साथ आते हैं।

[[-]>+<]

यदि Zगैर-शून्य है, अर्थात चरित्र और इनपुट समान नहीं हैं , तो हम अगले मेमोरी स्थान को बढ़ाते हैं।

यदि हम इस कथन से बाहर आते हैं, तो हम अगली मेमोरी की जगह को कम कर देते हैं। अब इस स्मृति स्थान में सम्‍मिलित है !Z। अंत में इसका उपयोग करते हुए, हम चरित्र के सूचकांक को आउटपुट करते हैं यदि यह इनपुट से मेल खाता है और फिर लूप को जबरन बाहर निकालता है। एल्स, हम लूप के साथ जारी रखते हैं जब तक कि यह खत्म नहीं हो जाता है या एक मैच नहीं मिलता है।

[-]>>>>>>>
Clears first byte; goes to position to start program
,[<<<<<<++<+++++++++++++:>>>>>>,]
Loops inputs


6

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

f=a=>a.map(v=>('f='+f).indexOf(v))

यह तार के सरणी के रूप में इनपुट लेता है, xहै -1(0-आधारित अनुक्रमण)।


यह अनुमति है, क्योंकि यह विधि भी quines के लिए स्वीकार्य है। यह अपनी स्रोत फ़ाइल को नहीं खोलता है और न ही इसे पढ़ता है या स्रोत से आरंभिक चर का उपयोग करता है।
mbomb007

1
@ mbomb007 मैं सभी जावास्क्रिप्ट इंजन के लिए नहीं बोल सकता, लेकिन फ़ायरफ़ॉक्स फंक्शन में। स्रोत को पढ़कर काम करता है। एक बिंदु पर यह डिबग बिल्ड में क्रैश होगा यदि स्रोत तब नहीं था जब इसे पढ़ने की कोशिश की गई थी। (मैंने हाल ही में इसकी कोशिश नहीं की है क्योंकि डिबग बिल्ड सामान्य रूप से बहुत दुर्घटनाग्रस्त हैं।)
नील

मुझे नहीं लगता कि यह s='s=%s;print s%%s';print s%sपायथन में करने से अलग है । इसमें शामिल नहीं है f=, इसलिए यह ठीक है
mbomb007

1
आप वास्तव में ऐसा नहीं कर सकते, क्योंकि इनपुट aको एक स्ट्रिंग माना जाता है। mapतार के लिए कोई फ़ंक्शन नहीं है ।
मनमौजी

@manonthemat "आप मान सकते हैं कि इनपुट एक स्ट्रिंग (या सरणी)" है
लार्स डब्ल्यू


5

रूबी, 41 88 86 71 69 67 61 56 बाइट्स

a='p$<.chrs{| #index};"';$<.chars{|c|p"a='#{a}".index c}

6 बाइट मारने के लिए Thx लिन


1
a='p$<.chrsm{| #index};"';p$<.chars.map{|c|"a='#{a}".index c}STDIN से इनपुट लेकर भी काम करना चाहिए।
लिन

4

> <> (मछली) 70 बाइट्स

 #.0+4*a5;!?l|!?f4*b+l1--naolc3*1+0.01?!|~ed+0.0+2e-{:;!?+1:i-1:r}+2:"

संभवतः सबसे लंबा> <> 1 लाइनर जो मैंने कभी बनाया है।

यह एक अलग लाइन (0 अनुक्रमित) पर पाए जाने वाले प्रत्येक वर्ण के लिए आउटपुट प्रिंट करेगा।

एक गैर-पाया गया वर्ण हमेशा कोड + 1 की लंबाई प्रिंट करेगा (मैं इसे बदल सकता था यदि इसे वर्तमान स्थिति में ठीक नहीं समझा जाता है) तो इस मामले में 71 हमेशा "नॉट पाया" अक्षर होंगे।

समय मिलते ही मैं स्पष्टीकरण जारी करूंगा।

कुछ परीक्षण मामले;

## के = 1 \ n1 \ n71

# # # = 1 \ n69 \ n1

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

> <> भाषा


मुझे लगता है कि 71 नहीं मिला के लिए एक आउटपुट के रूप में ठीक है। यह सुसंगत, असंदिग्ध और मानव-पठनीय है, जो मुझे लगता है कि यह होने से अधिक महत्वपूर्ण है "... कोई भी आउटपुट जो एक सकारात्मक पूर्णांक नहीं है"। मैंने इस निर्णय को दर्शाने के लिए नियमों का विस्तार किया।
Sanchises

3

पर्ल 6 , 50 52 बाइट्स

{(('R~.index$_) for}\\'R~'{((\'').index($_) for $_)}

का अनुवाद जीबी की रूबी समाधान और रॉड के अजगर समाधान

एक लैम्ब्डा जो वर्णों की एक सूची का आदान-प्रदान करता है और शून्य-आधारित अनुक्रमित (बिना Nilकिसी वर्ण के) की सूची को आउटपुट करता है ।

संपादित करें: एक ओवरसाइट तय - 2 बाइट्स जोड़ने की आवश्यकता :(


3

क्लोजर, 43 56 48 बाइट्स

संपादित करें: धिक्कार है मैं भूल गया 2! 43 से बढ़कर 56 हो गई।

संपादित करें 2: इस पाठ के नीचे का नमूना कोड अपडेट किया गया, बाइट्स की संख्या को शामिल नहीं करने के लिए अद्यतन किया गया (def f ...) लेकिन सिर्फ हैश-मैप भाग।

{\{ 0\\   1\  3\0   4\1 10\3 14\4 20\2 34 \} 43}

हैश-मैप में केवल वर्ण होते हैं 01234{\\}, और यह उनके स्थानों को एन्कोड करता है। क्लोजर में हैश-मैप्स का उपयोग किया जा सकता है, जैसा कि इस पूरे उदाहरण में दिखाया गया है ( fइसे हैश-मैप परिभाषा से बदला जा सकता है):

; Keeping track of the zero-based index:
;      00000000001111111111222222222233333333334444444444
;      01234567890123456789012345678901234567890123456789
(def f {\{ 0\\   1\  3\0   4\1 10\3 14\4 20\2 34 \} 43})

(map f "0123456789{} \\abcdef") ; (4 10 34 14 20 nil nil nil nil nil 0 43 3 1 nil nil nil nil nil nil)
(apply str (keys f))            ; " 01234{\\}"

मुझे लगता है कि यह मायने रखता है :)


2

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

p=s=>[...s].map(c=>`p=${p}`.indexOf(c))

console.log( p('mapP') )


1
क्या आप [...s]कृपया समझा सकते हैं ?
इरसेन

इसे प्रसार ऑपरेटर के रूप में जाना जाता है, आप ES6 गोल्फिंग टिप्स में थोड़ा और देख सकते हैं ।
वाशिंगटन Guedes

2
स्रोत कोड को पढ़ने की अनुमति नहीं है
अरनाउल्ड

2

अजगर, 11 बाइट्स

xL_+N"N+_Lx

एक प्रोग्राम जो इनपुट लेता है "quoted string", स्ट्रिंग में किसी भी उद्धरण के साथ पूर्ववर्ती के साथ भाग गया \, और -1स्रोत में नहीं वर्णों के लिए शून्य-अनुक्रमित मानों की एक सूची प्रिंट करता है।

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

यह काम किस प्रकार करता है

xL_+N"N+_Lx    Program. Input: Q
xL_+N"N+_Lx"Q  Implicit quote closure and implicit input
     "N+_Lx"   Yield the string "N+_Lx"
   +N          Prepend a quote
  _            Reverse
 L          Q  Map over Q:
x               Yield the index of the character in the string
               Implicitly print

2

05AB1E , 19 बाइट्स

"'ìsvDyk,"'"ìsvDyk,

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

यह लापता चार्ट के स्थान पर -1 आउटपुट करता है।


लुइस मेंडो ने गोल्फ पर यह (थोड़ा संशोधित) पोस्ट किया था कि आप बहुत अच्छे हैं! , उस उत्तर में "s" और "k" को जोड़ने से इस उत्तर में भी परिणाम मिलता है। हालांकि, मैं संशोधन के उस तुच्छ के लिए क्रेडिट नहीं ले सकता ... लुइस, आप मुझे संदेश दे सकते हैं यदि आप इसे दोहराना चाहते हैं और मैं इसे हटा दूंगा। यदि आप उस प्रश्न को खोजने से पहले मेरी प्रगति देखना चाहते हैं, तो संपादन देखें। खैर ... यह एक बिंदु पर उसकी तरह काफी था


@ सेंचुरी मेरे लिए काम करता है!
मैजिक ऑक्टोपस Urn

कूल कूल कूल!
Sanchises

@MagicOctopusUrn अच्छा किया !!
लुइस मेंडो

2

स्माइलबासिक, 128 96 88 86 बाइट्स

?R<3+CD,4LINPUT(S$)WHILE""<S$?INSTR("?R<3+CD,4LINPUT(S$)WHILE"+CHR$(34),SHIFT(S$))WEND

एक महत्वपूर्ण बात यह है कि यह वास्तव में एक बड़ी चुनौती नहीं है। आपको केवल अंतिम अनन्य वर्ण तक स्रोत कोड की आवश्यकता है ।

मैंने कोड की शुरुआत में प्रत्येक वर्ण का कम से कम 1 रखा: ?R<3+CD,4LINPUT(S$)WHILE"इसलिए मुझे केवल पहले उद्धरण चिह्न तक कार्यक्रम की एक प्रति संग्रहीत करनी होगी।


1

पायथन, 90 88 बाइट्स

a,b,d=" ()+.7:[]efilmnor","a,b,d=\"",lambda e:[[b.find(d),a.find(d)+7][d in a]for d in e]

परीक्षण का मामला:

print(d("a,b(]q"))
#[0, 1, 2, 8, 15, -1]

1

स्टैक्ड , नॉन-कमिंग, 36 बाइट्स

जब मैंने कहा कि यह भाषा अभी भी विकास में है, तो मेरा मतलब था। जाहिर है, promptपूरे स्टैक का उपभोग करने के लिए उपयोग किया जाता है। यही कारण है कि मैं अच्छी चीजें नहीं हो सकता। यहाँ कोशिश करो!

[tostr ':!' + prompt CS index out]:!

यह मानक क्वीन फ्रेमवर्क है। मूल रूप से, स्टैक पर :फ़ंक्शन [...]को डुप्लिकेट करता है , जिसे बाद में निष्पादित किया जाता है !। फिर, [...]स्टैक पर फ़ंक्शन के साथ निष्पादित होता है। यह इसे एक स्ट्रिंग में जोड़ता है, एपेंड करता है :!(स्वयं प्रोग्राम), फिर एक स्ट्रिंग इनपुट के साथ लेता है promptCSइसे एक चरित्र स्ट्रिंग में परिवर्तित करता है। एक चरित्र स्ट्रिंग एक नियमित स्ट्रिंग से थोड़ा अलग है कि इसमें ऑपरेटरों को इसके ऊपर वेक्टराइज़ किया गया है। इस मामले में, indexइनपुट पर वेक्टराइज़ करता है, कार्यक्रम में इनपुट स्ट्रिंग के प्रत्येक सूचकांक को अंतिम रूप से देता है out

इनपुट के लिए Hello, World!, यह देता है:

(-1 27 -1 -1 2 -1 6 -1 2 5 -1 26 9)

मैंने बिना क्विन के एक का उपयोग करने की कोशिश की (यानी आपके स्रोत में दिखाई देने वाले वर्णों की स्ट्रिंग को एन्कोडिंग), लेकिन स्टैक्ड, अर्थात्, में केवल एक प्रकार का उद्धरण चिह्न है ', इसलिए उस प्रकार का समाधान करना अधिक लंबा होगा।


1

भूसी , 12 बाइट्स

m€`:'""m€`:'

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

व्याख्या

स्पष्टीकरण का उपयोग ¨स्ट्रिंग 'को परिसीमित करने और पात्रों को परिसीमित करने के लिए किया जाता है:

m€`:'""m€`:'  -- implicit input, for example: ¨m"a1`¨
      "m€`:'  -- string literal: ¨m€`:'¨
  `:'"        -- append character '"': ¨m€`:'"¨
m             -- map function over each character (example with 'a'):
 €            -- | index of first occurrence (1-indexed): 0
              -- : [1,6,0,0,3]

1

जावा 8, 172 122 बाइट्स

a->{/*.indexOf(c)+\" ;}orh:Systmup*/for(char c:a)System.out.print("a->{/*.indexOf(c)+\\\" ;}orh:Systmup".indexOf(c)+" ");}

0-अनुक्रमित, और उन -1वर्णों के लिए देता है जो स्रोत कोड का हिस्सा नहीं हैं।

स्पष्टीकरण:

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

a->{                         // Method with character-array parameter and no return-type
  /*.indexOf(c)+\" ;}orh:Systmup*/
                             //  Comment containing the remaining characters of the code
  for(char c:a)              //  Loop over the input-array
    System.out.print(        //   Print:
      "a->{/*.indexOf(c)+\\\" ;}orh:Systmup"
                             //    String containing all the characters used in the code
      .indexOf(c)+" ");}     //    Print the index of the char, plus a space as delimiter

1

जे , 31 22 बाइट्स

11|1+i.~&'11|1+i.~&'''

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

1-अनुक्रमित, वर्णों के लिए 0 जो कोड में मौजूद नहीं हैं। ''एक उद्धरण के लिए खड़ा है। स्ट्रिंग में प्रत्येक वर्ण ढूंढें 11|1+i.~&', 1 जोड़ें, मोडुलो 11।



1

पर्ल 5 के साथ -pl, 43 बाइट्स

-1कार्यक्रम में प्रदर्शित नहीं होने वाले पात्रों के लिए नईलाइन से अलग इनपुट और प्रिंट का उपयोग करता है ।

$s=q{$_=index"\$s=q{$s};eval\$s",$_};eval$s

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


@Sanchises अब ठीक है, इसके बारे में क्षमा करें। स्पष्ट रूप से ठीक से नहीं पढ़ा!
डोम हेस्टिंग्स

कोई दिक्कत नहीं है। इस चुनौती में कुछ नया जीवन लाने के लिए धन्यवाद!
Sanchises

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.