दो तारों से एक स्ट्रिंग में इंजेक्शन


14

चुनौती

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

विशिष्ट तथ्य

  • इनपुट मनमानी लंबाई के किसी भी दो तार हो सकते हैं , लेकिन केवल मुद्रण योग्य ASCII वर्ण (कोड ) शामिल होंगे।[32,126]
  • इसी तरह, आउटपुट स्ट्रिंग की कोई लंबाई प्रतिबंध नहीं है, लेकिन इसमें केवल मुद्रण योग्य ASCII वर्ण शामिल होने चाहिए।
  • यदि आपकी भाषा मनमाने ढंग से लंबाई के तारों को संभाल नहीं सकती है, तो कार्यक्रम किसी भी आकार के तारों के लिए सैद्धांतिक रूप से काम कर सकता है ।
  • इनपुट से आउटपुट तक मानचित्रण कार्यक्रम के निष्पादन के बीच संगत होना चाहिए। अन्यथा, आपके द्वारा उपयोग की जाने वाली मैपिंग पूरी तरह से आपके ऊपर है, जब तक कि यह एक इंजेक्शन है।
  • इनपुट का आदेश दिया गया है। यदि दो इनपुट स्ट्रिंग्स अलग-अलग हैं, तो उन्हें स्वैप किए जाने की तुलना में अलग आउटपुट का उत्पादन करना चाहिए। stf(s,t)f(t,s)
  • प्रत्येक स्ट्रिंग को एक संभावित आउटपुट की आवश्यकता नहीं होती है।
  • प्रत्येक भाषा में सबसे छोटा उत्तर जीतता है!

परीक्षण के मामलों

निम्नलिखित निविष्टियाँ सभी के लिए अलग-अलग आउटपुट में होनी चाहिए। भ्रम से बचने के लिए, तार गाइलेट्स («») से घिरे होते हैं और सिंगल स्पेस से अलग हो जाते हैं।

"नमस्ते दुनिया"
«Lelho» «डूब»
"विभिन्न"
"एक ही नहीं"

«कोड» «गोल्फ»
«सह» «deGolf»
«CodeGolf» «»

«» «»
«» «»
«» «»
«» «»
«» «»

«एबीसी", »« डीईएफ़ »
«एबीसी» «," डीईएफ़ »
«एबीसी '» «« डीईएफ »
«एबीसी '» «« डीईएफ »

«\ _« «» »
«\\» «\" »

8
हम्म मैंने सिर्फ "एक प्रोग्राम लिखें कि ..." पर ध्यान दिया - ध्यान दें कि मेटा सर्वसम्मति (वर्तमान में 46 अप, 1 डाउन) "केवल कार्यक्रमों पर प्रतिबंध लगाने के लिए केवल" कार्यक्रम "के बजाय" पूर्ण कार्यक्रम "को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है" मुझे आशा है कि आप इसे प्रतिबंधित करने की कोशिश करने के लिए नहीं थे, लेकिन अगर आपने किया है तो आपको तदनुसार पोस्ट को अपडेट करने की आवश्यकता होगी और हम में से उन लोगों को संबोधित करेंगे जिन्होंने पहले से ही उत्तर के रूप में फ़ंक्शन सबमिट किए हैं।
जोनाथन एलन

4
@JonathanAllan इरादा कार्यों की अनुमति देना था।
नकारात्मक सात

3
क्या दोनों में से कोई भी तार खाली हो सकता है?
झबरा

2
@ शैगी हाँ, या तो दोनों कर सकते हैं।
नकारात्मक सात

1
क्या हमारे पास कुछ परीक्षण मामले हो सकते हैं? धन्यवाद!
.फ्लिपक

जवाबों:


17

ब्रेनफक, 30 29 27 23 बाइट्स

,[-[+.>]-[>+<---]>.-.,]

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

इनपुट एक 0x01बाइट द्वारा अलग किए जाते हैं ।

यह में बदल जाता ["foo", "bar"]है fUToUToUTUTbUTaUTrUT। मूल दो तारों को पुनर्प्राप्त करने के लिए, 3 वर्णों के समूह लें, एक को ढूंढें जहां दूसरा अक्षर नहीं है U, और वहां विभाजित करें।


@Grimy क्षमा करें, गलत समझा गया "इनपुट 0x01 बाइट द्वारा अलग किए गए हैं।"
11

15

जावास्क्रिप्ट (ईएस 6), 14 बाइट्स

2 स्ट्रिंग्स की एक सरणी के रूप में इनपुट लेता है। लुइस के जवाब से प्रेरित ।

JSON.stringify

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


जावास्क्रिप्ट (ईएस 6),  21  20 बाइट्स

के रूप में इनपुट लेता है (a)(b)

a=>b=>[a.length,a]+b

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

की लंबाई लौटाता , उसके बाद अल्पविराम, जिसके बाद और का संयोजन होता ।aab


हे भगवान! बस stringifyचाल का उपयोग करने के बारे में था !
झबरा

के साथ तोड़ता है a="hello","" b="world"औरa="hello" b="","world"
Soleil

1
@ सुनिल जो देता ["\"hello\",\"\"","\"world\""]और ["\"hello\"","\"\",\"world\""]
Arnauld

1
@Arnauld बैकस्लैश सुरक्षा दिखाई नहीं देगी। फ़ंक्शन इंजेक्ट नहीं होगा।
सोइल

1
@ सुनिल मुझे समझ में नहीं आ रहा है कि तुम्हारा क्या मतलब है। JSON.stringify()निश्चित रूप से बच जाता है "एक हेक्स डंप देखें
Arnauld

15

jq -c, 0 बाइट्स

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

यह निश्चित रूप से धोखा देने जैसा लगता है ...? लेकिन यह चुनौती के नियमों का पालन करता है।

डिफ़ॉल्ट रूप से, jqइसके इनपुट को मानव-पठनीय JSON प्रारूप में आउटपुट करेगा। -c(कॉम्पैक्ट) ध्वज बताता है jq"कॉम्पैक्ट" शैली है, जो नई-पंक्तियों (के बाद से चुनौती मनाही प्रिंट न हो सकने ASCII) को हटा में उत्पादन करने के लिए।


1
ओपी खाली इनपुट की अनुमति देता है, इसलिए a = "", b = "x" एक ही आउटपुट = "x" b = "" के रूप में नहीं देगा
Gnudiff

3
@Gnudiff कैसे? वे देना होगा ["","x"]और ["x",""]क्रमशः
दरवाज़े

1
क्षमा करें, आप सही हैं।
ग्नूडीफ

7

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

str

ए (बिल्ट-इन) फ़ंक्शन जो दो तारों की एक सूची को देखते हुए, सूची का एक स्ट्रिंग प्रतिनिधित्व देता है

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


2
पाइथ से अधिक पीथ ...
ट्राइकोप्लाक्स

ठीक है, 1 बाइट अजगर समाधान `एक ही बात करता है।
एंडर्स कासोर्ग

5

जाप -S , 3 बाइट्स

मुझे अभी भी लगता है कि मुझे यहाँ कुछ याद आ रहा है ...

®mc

कोशिश करो

संभवतः 2 बाइट्स:

mq

कोशिश करो

या इस 1-बेटर के साथ इसे खींचना:

U

कोशिश करो

पहला संस्करण सरणी में प्रत्येक स्ट्रिंग को उसके कोडपॉइंट्स पर मैप करता है और उन्हें एक स्पेस के साथ आउटपुट करता है।

दूसरा संस्करण प्रत्येक स्ट्रिंग को एक कैरेक्टर एरे में विभाजित करता है और उन्हें स्पेस के साथ मिलाता है।

और तीसरा संस्करण, जो धोखा देने जैसा महसूस करता है, सिर्फ इनपुट को -Qझंडा के साथ इनपुट करता है, जो कि srringifyआईएनजी की भारी लिफ्टिंग करता है।


5

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

jNmC

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

यह प्रत्येक स्ट्रिंग को 256 बेस में परिवर्तित करता है और फिर एक क्रम में उन्हें जोड़ता है "। चूंकि परिणाम प्रत्येक संख्या हैं, "असंदिग्ध रूप से उन्हें अलग करता है और मूल तार के साथ बरामद किया जा सकता है mCsdczN


1
@AndersKaseorg 1- बायटर का सुझाव देता है ।
केविन क्रूज़सेन

@ केविनक्रूजसेन मुझे इस बात की जानकारी है कि इसे पोस्ट करने के कुछ ही मिनटों बाद, मैं इस समाधान की भावना को प्राथमिकता देता हूं। वैसे भी इसे लाने के लिए धन्यवाद, और निश्चित रूप से इसे स्वयं पोस्ट करने के लिए स्वतंत्र महसूस करें :)
FryAmTheEggman

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

4

टी-एसक्यूएल, 38 बाइट्स

SELECT QUOTENAME(a)+QUOTENAME(b)FROM i

ivarcharab

उपयोग QUOTENAME, जो स्ट्रिंग्स को घेरता है []और किसी भी आंतरिक कोष्ठक से भी बच जाता है। एक अद्वितीय आउटपुट के लिए मैप करना चाहिए।


1
MySQL पर एक ही लंबाई: SELECT CONCAT(QUOTE(a),QUOTE(b))FROM t यह ऑनलाइन की कोशिश करो
Night2

4

Zsh , 7 बाइट्स

<<<$@:q

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

रिक्त स्थान पर तर्क से जुड़ता है। qसंशोधक zsh बताता है, तर्क है, जो महत्वपूर्ण रिक्त स्थान निकल जाता उद्धृत करने के लिए यह सुनिश्चित करना कोई अनपेक्षित अंतरिक्ष स्पष्ट रूप से दो तर्क अलग करती है।

(बिना q, "a " "b"और "a" " b"उपज के दोनों "a b")।


3

MATL , 1 बाइट

j

कोड इनपुट के रूप में दो स्ट्रिंग्स की एक सरणी लेता है, और उस एरे के एक स्ट्रिंग प्रतिनिधित्व को आउटपुट करता है।

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

व्याख्या

कोड केवल इनपुट को एक स्ट्रिंग के रूप में पढ़ता है, अनवैल्युएटेड।


1
क्या यह वास्तव में इनपुट के रूप में दो तार लेता है? ऐसा लगता है कि यह सिर्फ इनपुट को प्रिंट करता है जो भी हो। इसे ऑनलाइन आज़माएं!
जेम्स

1
@DJ यह सिर्फ अनवैलिड इनपुट पढ़ता है, इसलिए यह कुछ भी पढ़ता है। क्या यह एक बचाव का रास्ता है? एक अधिक मानक दृष्टिकोण एक इनपुट के रूप में एक सरणी के रूप में लेना और फिर स्ट्रिंग प्रतिनिधित्व में परिवर्तित करना होगा। लेकिन परिणाम मेरे कोड के समान होगा, इसलिए मैं यह तर्क दूंगा कि अंतर अप्राप्य है
लुइस मेंडू

3

जेली , 2 बाइट्स

ŒṘ

एक मोनडिक लिंक दो वर्णों की सूची को अपने तर्क के रूप में स्वीकार करता है जो वर्णों की एकल सूची प्राप्त करता है।

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

कैसे?

यह पायथन के स्ट्रिंग प्रतिनिधित्व को प्राप्त करने के लिए बिल्ट-इन है।


3

हास्केल, 4 बाइट्स

show

हास्केल ने चीजों को तार में बदलने के लिए अंतर्निहित किया। इनपुट को तार की एक जोड़ी के रूप में लिया जाता है।

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


3

05AB1E , 2 बाइट्स

₁ö

इसे ऑनलाइन आज़माएं! आधार-256 पूर्णांक के रूप में प्रत्येक स्ट्रिंग की व्याख्या करता है, फिर फॉर्म में दोनों को प्रिंट करता है [1, 2]


05AB1E, 1 बाइट (अज्ञात वैधता)

â

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

अपने साथ इनपुट का कार्टेशियन उत्पाद लेता है। इनपुट में उद्धरण से बच नहीं रहे हैं, जिससे भ्रम हो सकता है। मैंने 12 तक के सभी संयोजनों को भंग कर दिया ", "और "], ["कोई टकराव नहीं पाया; हालांकि, मैं साबित नहीं कर सकता कि लंबे समय तक तार के लिए कोई टकराव नहीं हैं। अगर कोई भी सबूत या प्रति-उदाहरण के साथ आ सकता है, तो मैं इसकी बहुत सराहना करूँगा!

तुच्छ 0-बायटर विफल होने के कारण उद्धरण से बच नहीं रहा है: इनपुट (और ", ", रिक्त स्ट्रिंग) और (खाली स्ट्रिंग ", ") दोनों आउटपुट प्राप्त करते हैं ["", "", ""]

1-बायटर º(प्रत्येक इनपुट स्ट्रिंग को मिरर) इस वजह से भी विफल हो जाता है: इनपुट ( ", "" ,",, खाली स्ट्रिंग) और (खाली स्ट्रिंग " ,"", ") दोनों आउटपुट प्राप्त करते हैं ["", "" ,"", "" ,"", ""]


3

26 बाइट्स के साथ सी # (लुकास लैंग, केविन क्रूज़सेन और जो किंग का धन्यवाद)

a=>b=>$"{a.Length}.{a}{b}"

tio.run लंबा



यह अभी भी ("ए <>", "बी") और ("ए", "<> बी") पर टूटता है - ध्यान दें कि सभी मामलों को संभालना असंभव है यदि आप इनपुट को केवल संक्षिप्त कर रहे हैं, तो कोई फर्क नहीं पड़ता कि आप क्या कर रहे हैं उनके बीच / उनके आस-पास - आपको किसी भी तरह तार को संशोधित करने की आवश्यकता है
लुकास लैंग

1
क्षमा करें, अभी भी नहीं: ("1", "11111111111") और ("11111111111", "1") - दूसरे हाथ पर क्या काम करता है (और इससे भी छोटा है) यह है $"{a.Length}.{a}{b}"- आप हमेशा निकाल सकते हैं aऔर bबिना किसी से अस्पष्टता (सिर्फ .लंबाई पाने के लिए पहली बार पढ़ा जाता है a, bफिर बाकी है
लुकास लैंग

1
@LukasLang बढ़िया। फॉलो अप के लिए धन्यवाद।
सोलेल

1
बहुत धन्यवाद @JoKing!
सोइल


2

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

कई सुधारों के लिए धन्यवाद

"$($args|% le*)"+$args

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

पाँच ले लो, ओह माय।


"ab" "c"और "a" "bc"दोनों एक ही आउटपुट का उत्पादन करते हैं।
ब्रैडक

@ जॉकिंग की बातें तय होनी चाहिए। उम्मीद है कि।
विस्कह




1

CSS + HTML, 55 + 20 = 75 बाइट्स

<code>टैग के बाद HTML में इनपुट प्रदान करें । नेत्रहीन आउटपुट में प्रत्येक इनपुट से एक-एक करके अक्षरों को इंजेक्ट करते हैं। जब कोई इनपुट दूसरे से अधिक लंबा होता है, तो दृश्य इनपुट को छोटे इनपुट के लेटर (लापता) के लिए दिखाया जाता है। दृश्य आउटपुट विशिष्टता (I आशा) को मजबूर करने के लिए HTML में एक अल्पविराम भी जोड़ा जाता है।

*{position:absolute;letter-spacing:9px}code>code{left:9px
<code>abcdefg<code>hijklmn</code>,



1

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

&dd

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

STDERR को ऑब्जेक्ट प्रतिनिधित्व को आउटपुट करता है।


मैं पर्ल के साथ पर्याप्त रूप से परिचित नहीं हूं - आप यहां स्ट्रिंग युक्त रिक्त स्थान कैसे इनपुट करेंगे?
नकारात्मक सात


@negativeseven हाँ क्षमा करें, मैं बस तार की सूची के लिए एक शॉर्टकट वाक्यविन्यास का उपयोग कर रहा था। आप ऐसा कर सकते हैं कि एक विशिष्ट शैली में["Hello, ", "World!"]
जो किंग

1

लुआ , 27 बाइट्स

print(('%q%q'):format(...))

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

पूर्ण कार्यक्रम, तर्कों के रूप में इनपुट लें।

Zsh उत्तर से प्रेरित होकर, क्योंकि यह %qआंतरिक सुरक्षित-स्ट्रिंग इंजन का उपयोग करने के लिए संशोधक का भी उपयोग करता है।

इसके अलावा, मैं बस के बारे में सोच सकते हैं

('%q%q'):format

लेकिन मुझे यकीन नहीं है कि यह स्वीकार्य उत्तर है।


मुझे नहीं लगता कि दूसरा वैध है क्योंकि ('%q%q'):formatइसमें एक वस्तु नहीं होती है, उदाहरण के लिए, एक चर को सौंपा जा सकता है। यह सिर्फ अपने आप ही एक वाक्यविन्यास त्रुटि का कारण बनता है। कोलन सिंटैक्स सिर्फ एक शॉर्टकट है '%q%q'.format('%q%q', ...)और लुआ कार्यों के लिए आंशिक आवेदन की अनुमति नहीं देता है
जो किंग

@ जोकिंग हाँ, आप सही हैं, मुझे लगता है।
वैल का कहना है कि मोनिका



1

सी (जीसीसी) , 59 बाइट्स

सुझाव के लिए आभार।

इनपुट स्ट्रिंग्स की एक सरणी लेता है (जिनमें से "2" इस चुनौती के लिए सही संख्या है) और अनुगामी सहित उनके चरित्र मूल्यों को प्रिंट करता है NUL। तकनीकी रूप से, %pफॉर्मेटर का उपयोग printfपॉइंटर्स के लिए किया जाता है, लेकिन यह मनमाने ढंग से पूर्णांकों के हेक्स मानों को प्रदर्शित करने के लिए ठीक काम करता है यदि आप कैसे दिखते हैं इसके बारे में जानकारी नहीं है!

f(s,t)char**s,*t;{for(;t=*s++;)for(;printf("%p",*t++)^5;);}

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


अच्छा! यहाँ एक 59 है
ग्रिम्मी



0

बैश , 11 बाइट्स

echo ${@@Q}

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

${parameter@Q}इनपुट के रूप में पुन: उपयोग के लिए पैरामीटर उद्धृत करता है। एक सरणी के मामले में, यह प्रत्येक तत्व को उद्धृत करता है।


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