कृपया रिक्त स्थान भरें!


11

(नहीं, यह है और न ही इनमें से किसी भी )

एक तार और तार की एक सूची को देखते हुए, इसी तार के साथ इनपुट स्ट्रिंग में सभी रिक्त स्थान भरें।

इनपुट आउटपुट

इनपुट स्ट्रिंग में केवल वर्णमाला वर्ण, रिक्त स्थान और अंडरस्कोर होते हैं। यह nonempty है और एक अंडरस्कोर से शुरू नहीं होता है। दूसरे शब्दों में, इनपुट स्ट्रिंग रेगेक्स से मेल खाती है^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$

इनपुट सूची में प्रत्येक स्ट्रिंग गैर-रिक्त है और इसमें केवल अल्फ़ान्यूमेरिक वर्ण और स्थान हैं। दूसरे शब्दों में, वे रेगेक्स से मेल खाते हैं ^[a-z A-Z]+$

एक रिक्त अंडरस्कोर ( _) का एक सन्निहित अनुक्रम है जो न तो पूर्ववर्ती है और न ही अंडरस्कोर द्वारा आगे बढ़ा है।

इनपुट स्ट्रिंग में nकुछ धनात्मक पूर्णांक के लिए रिक्त स्थान होते हैं n, और तार की सूची में बिल्कुल nतार होते हैं।

आउटपुट स्ट्रिंग के इनपुट सूची में -th स्ट्रिंग kद्वारा इनपुट स्ट्रिंग में प्रत्येक -th को खाली करके प्राप्त किया kजाता है।

उदाहरण

इनपुट स्ट्रिंग "I like _____ because _______ _____ing"और स्ट्रिंग्स की सूची को देखते हुए ["ice cream", "it is", "satisfy"], हम आउटपुट को निम्नानुसार पा सकते हैं:

  • पहले खाली के बाद सीधे आता है "like "। हम उस के साथ में भरने "ice cream"प्राप्त करने के लिए "I like ice cream because ______ _____ing"
  • दूसरा ब्लैंक सीधे आता है "because "। हम उस के साथ में भरने "it is"प्राप्त करने के लिए "I like ice cream because it is _____ing"
  • तीसरा खाली सीधे आता है "is "। हम उस के साथ में भरने "satisfy"प्राप्त करने के लिए "I like ice cream because it is satisfying"

हम अंतिम स्ट्रिंग आउटपुट करते हैं "I like ice cream because it is satisfying"

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

input string, input list => output
"Things _____ for those who ____ of how things work out _ Wooden",["work out best","make the best","John"] => "Things work out best for those who make the best of how things work out John Wooden"
"I like _____ because _______ _____ing",["ice cream","it is","satisfy"] => "I like ice cream because it is satisfying"
"If you are ___ willing to risk _____ you will ha_o settle for the ordi_____Jim ______n",["not","the usual","ve t","nary ","Roh"] => "If you are not willing to risk the usual you will have to settle for the ordinary Jim Rohn"
"S____ is walking from ____ to ____ with n_oss of ___ W_____ Churchill",["uccess","failure","failure","o l","enthusiasm","inston"] => "Success is walking from failure to failure with no loss of enthusiasm Winston Churchill"
"If_everyone_is_thinking ____ ____ somebody_isnt_thinking G____e P____n",[" "," "," ","alike","then"," "," ","eorg","atto"] => "If everyone is thinking alike then somebody isnt thinking George Patton"
"Pe_________e __say ____motivation does__ last Well___her doe_ bathing____thats why we rec____nd it daily _ __________lar",["opl","often ","that ","nt"," neit","s","  ","omme","Zig","Zig"] => "People often say that motivation doesnt last Well neither does bathing  thats why we recommend it daily Zig Ziglar"

5
तुच्छ कार्य के लिए बहुत सारे स्पष्टीकरण।

जवाबों:


5

उत्तल , 5 बाइट्स

'_%.\

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

उत्तल एक सीजेएम-आधारित भाषा है, और यह उत्तर लगभग मेरे सीजेएम उत्तर के समान है, सिवाय इसके l~कि यहां अनावश्यक है, क्योंकि कॉन्वक्स कार्यक्रम की शुरुआत में स्वचालित तर्क मूल्यांकन करता है।

स्पष्टीकरण:

'_%.\ e# Full program only
'_    e# Push '_'
  %   e# Split and remove empty chunks
   .\ e# Vectorize by Swap

4

जाप , 8 बाइट्स

r"_+"@Vv

इसे ऑनलाइन टेस्ट करें!

मुझे लगता है कि मैंने नियमों में कुछ छिपा हुआ कैच छूटा क्योंकि यह बेहद सरल है: "सरणी में अगले आइटम के साथ स्ट्रिंग में अंडरस्कोर के प्रत्येक रन को बदलें।"



2

प्रोटॉन , 42 बाइट्स

a=>b=>re.sub("_+",_=>b.pop(0),a)
import re

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

बेवकूफ आयात ...

अजगर में एक ही बात:

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

lambda a,b:re.sub("_+",lambda _:b.pop(0),a)
import re

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


... मुझे कैसे याद आती है। ._।
पूरी तरह से


2

सीजाम , 7 बाइट्स

l~'_%.\

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

-1 मार्टिन एंडर द्वारा एक चतुर चाल के लिए धन्यवाद ।

स्पष्टीकरण:

l~'_%.\ e# Full program only
l       e# Input line
 ~      e# Eval
  '_    e# Push '_'
    %   e# Split and remove empty chunks
     .\ e# Vectorize by Swap

.\के बजाय \]z
मार्टिन एंडर

@ मेर्टिनएंडर जो o_o काम करता है
एरिक आउटगॉल्फ

ज़रूर, \एक बाइनरी ऑपरेटर है। :)
मार्टिन एंडर

@MartinEnder ऐसा लगता है जैसे मैं CJam में मैपिंग कैसे काम करता है में बहुत अधिक हो गया है।
आउटगॉल्फ

@MartinEnder ओके सेकंड सोचा कि मैंने ऐसा कैसे नहीं सोचा? ऐसा नहीं है कि मुझे नहीं पता था कि मैपिंग कैसे व्यवहार करता है जैसे [1 2 3]:_-> [1 1 2 2 3 3]इसी तरह के लिए ....
एग्री द आउटग्राफर


1

पर्ल 5 , 25 + 1 (-पी) = 26 बाइट्स

@a=eval<>;s|_+|shift@a|eg

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


मूल रूप से एक ही के साथ आया था, को छोड़कर <>नकारात्मक का उपयोग कर : evalऔर यह ऑनलाइन कोशिश करो! । वहाँ नए तरीके की जगह से बचने के लिए एक रास्ता मिल गया है ...shift
डोम हेस्टिंग्स

इस सबरूटीन में 26 बाइट्स भी हैं sub{shift=~s|_+|shift|egr}:। यदि आप तर्कों को उलट देते हैं, तो आप इसका उपयोग कर सकते हैं popऔर इसे 22 बाइट्स तक ले जा सकते हैं
nwellnhof

1

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

s.i:E"_+"3

यहाँ यह कोशिश करो!

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

सी: ई "_ +" 3 पूर्ण कार्यक्रम।

   : E 3 रेगेक्स के मैचों पर दूसरा इनपुट विभाजित करें ...
     "_ +" द रेगेक्स "_ +" (1 या अधिक अंडरस्कोर मैच)
 .i इनपुट के साथ स्प्लिट सूची के तत्वों को इंटरलाइव करता है।
s स्ट्रिंग में शामिल हों।

1

RProgN 2 , 11 बाइट्स

x='_+'³[x‘r

स्टैक के शीर्ष पर एक स्ट्रिंग और तार का एक स्टैक लेता है।

स्टैक का पहला (शीर्ष) तत्व दाईं ओर है, इसलिए इनपुट दाएं से बाएं है।

व्याख्या की

x='_+'³[x‘r
x=          # Set the stack of replacements to x
  '_+'³   r # Replace each chunk of _'s with the function...
       [    # Pop off the group of _'s
        x‘  # Pop the top element off x. Use that.

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


1

जावा 8, 57 बाइट्स

a->s->{for(String i:a)s=s.replaceFirst("_+",i);return s;}

जब मैंने चुनौती को पढ़ा तो मुझे लगा कि हमें शब्दों को यादृच्छिक क्रम में होने के साथ व्याकरणिक रूप से सही वाक्य बनाना चाहिए, लेकिन बस प्रत्येक अनुक्रमिक शब्द के साथ लाइनों को बदलना आसान है। ;)

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

a->s->{            // Method with String-array and String parameter and String return-type
  for(String i:a)  //  Loop over the input-array
    s=s.replaceFirst("_+",i);
                   //   Replace the first line (1 or more adjacent "_") with the substring
                   //  End of loop (implicit / single-line body)
  return s;        //  Return the result
}                  // End of method

1

05AB1E , 12 बाइट्स

„__¤:sv'_y.;

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

व्याख्या

„__¤:          # replace all runs of multiple "_" with a single "_"
     sv        # for each y in the list of replacements
       '_y.;   # replace the first instance of "_" with y


@EriktheOutgolfer: सूचना के लिए धन्यवाद। मैं अपने पिछले संस्करण में वापस आ गया जो कि संभाला था।
एमिग्ना

1

सी # (.NET कोर) , 97 96 + 18 बाइट्स

केविन क्रूज़सेन के लिए 1 बाइट धन्यवाद !

18 बाइट्स उपयोग के लिए हैं System.Linq

s=>l=>string.Concat(s.Split('_').Where(x=>x!="").Zip(l.Concat(new[]{""}),(x,y)=>x+y).ToArray());

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


आप एक बाइट को बचाने के (s,l)=>लिए बदल सकते हैं s=>l=>इसे ऑनलाइन आज़माएं!
केविन क्रूज़सेन 12


0

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

import re
s,l=input()
for i in l:s=re.sub('_+',i,s,1)
print s

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

अरे नहीं।

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

import re
f=lambda s,l:l and f(re.sub('_+',l[0],s,1),l[1:])or s

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


re.subएक समारोह से गुजरते हुए 60 बाइट्स
स्टीफन

@ स्टीफन एह ... यह सिर्फ आपके समाधान के करीब है। मैं सिर्फ इस पर टिकूंगा और अधिक अस्पष्ट समाधान ढूंढूंगा। : पी
बिलकुल अमानवीय

@ स्टीफन के प्रस्ताव में सुधार के लिए एक फ़ंक्शन का उपयोग करके 53 बाइट्स
जोनाथन फ्रीच

@ जोनाथनफ्रेच हाँ, लेकिन यह मेरा जवाब पहले से ही है: पी
स्टीफन

@ स्टीफन ओह; आपका जवाब नहीं देखा ...: d
जोनाथन फ्रीच


0

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

lΔ╔*№≤ŗ

यह कोशिश करो!

स्पष्टीकरण:

l        get the strings length
 Δ       range
  ╔*     multiply an underscore with each of the numbers
    №    reverse vertically (so the longest underscores get replaced first)
     ≤   put the array on top - order parameters for ŗ correctly
      ŗ  replace in the original string each any occurence of the underscores with its corresponding item in the array

0

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

s,l=input();import re;print re.sub("_+","%s",s)%l

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

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

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