শূন্যস্থান পূরণ করুন, দয়া করে!


11

(না, এটি বা এর কোনওটিই নয় )

একটি স্ট্রিং এবং স্ট্রিংয়ের তালিকা দেওয়া, ইনপুট স্ট্রিংয়ের সমস্ত ফাঁকা সংশ্লিষ্ট স্ট্রিং সহ পূরণ করুন।

ইনপুট আউটপুট

ইনপুট স্ট্রিংয়ে কেবল বর্ণানুক্রমিক অক্ষর, স্পেস এবং আন্ডারস্কোর রয়েছে। এটি মজাদার নয় এবং আন্ডারস্কোর দিয়ে শুরু হয় না। অন্য কথায়, ইনপুট স্ট্রিংটি রেজেক্সের সাথে মেলে^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$

ইনপুট তালিকার প্রতিটি স্ট্রিং অযৌক্তিক এবং এতে কেবলমাত্র বর্ণানুক্রমিক অক্ষর এবং স্পেস থাকে। অন্য কথায়, তারা রেজেক্সের সাথে মেলে ^[a-z A-Z]+$

ফাঁকা হ'ল আন্ডারস্কোর ( _) এর একটি সংলগ্ন অনুক্রম যা পূর্বে বা আন্ডারস্কোর দ্বারা এগিয়ে যায় না।

ইনপুট স্ট্রিংটিতে nকিছু ইতিবাচক পূর্ণসংখ্যার ফাঁকা অংশ থাকে nএবং স্ট্রিংয়ের তালিকায় হুবহু nস্ট্রিং থাকে।

kস্ট্র্যাপের ইনপুট তালিকার ইনপুট স্ট্রিংয়ের প্রতিটি- তম ফাঁকা স্থান পরিবর্তন করে আউটপুট প্রাপ্ত হয় 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

এমএটিএল , 9 বাইট

'_+'i1&YX

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

'_+'   % Push this string: regexp pattern
i      % Input cell array of replacement strings
1      % Push 1
&YX    % Four-input regexp replacement. This implicitly inputs the original
       % string, and consecutively replaces each first occurrence of the 
       % regexp pattern in that string by one of the replacement strings.
       % Implicitly display

2

সিজেম , 7 বাইট

l~'_%.\

এটি অনলাইন চেষ্টা করুন!

-1 দ্বারা একটি চালাক কৌতুক ধন্যবাদ মার্টিন Ender

ব্যাখ্যা:

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

.\পরিবর্তে \]z
মার্টিন এন্ডার

@ মার্টিনেেন্ডার যা কাজ করে
_ এরিক দি আউটগল্ফার

অবশ্যই, \একটি বাইনারি অপারেটর। :)
মার্টিন এেন্ডার

@ মার্টিনএন্ডার মনে হয় সিজেজে ম্যাপিংয়ের কাজটি কীভাবে করা যায় তাতে আমি কিছুটা বেশি পেয়েছি।
এরিক আউটগল্ফার

@ মার্টিনএন্ডার ঠিক আছে দ্বিতীয় ভাবা আমি কীভাবে তা ভাবিনি? NOT LIKE আমি জানতাম না কিভাবে ম্যাপিং আচরণ করবে যেমন [1 2 3]:_-> [1 1 2 2 3 3]একইভাবে জন্য ....
এরিক Outgolfer


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

এখানে চেষ্টা করুন!

কিভাবে এটা কাজ করে?

si: E "_ +" 3 সম্পূর্ণ প্রোগ্রাম।

   : ই 3 রেগেক্সের ম্যাচে দ্বিতীয় ইনপুট বিভক্ত করুন ...
     "_ +" রেজেক্স "_ +" (1 বা ততোধিক আন্ডারস্কোরের সাথে মেলে)
 .i ইনপুট দিয়ে বিভক্ত তালিকার উপাদানগুলি ইন্টারলিভ করে।
একটি স্ট্রিং যোগ দিন।

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

05 এ বি 1 ই , 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


@ এরিকথ আউটগলফার: লক্ষ্য করার জন্য ধন্যবাদ আমি আমার আগের সংস্করণে ফিরে এসেছি যা এটি পরিচালনা করেছিল।
Emigna

1

সি # (.নেট কোর) , 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=>এটি অনলাইন চেষ্টা করুন!
কেভিন ক্রুইজসেন


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

এটি অনলাইন চেষ্টা করুন!


60 বাইট ক্ষণস্থায়ী দ্বারা re.subএকটি ফাংশন
স্টিফেন

@ স্টেফেন এহ ... এটি আপনার সমাধানের খুব কাছাকাছি। আমি কেবল এটিকে আঁকড়ে ধরে আরও অস্পষ্ট সমাধান খুঁজে পাব। : পি
সম্পূর্ণমানবিক

@ স্টিফেনের প্রস্তাবনা উন্নত করতে একটি ফাংশন ব্যবহার করে 53 বাইট
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ হ্যাঁ, তবে এটি ইতিমধ্যে আমার উত্তর : পি
স্টিফেন

@ স্টেফেন ওহ; আপনার উত্তরটি দেখেনি ...: d
জোনাথন ফ্রেচ


0

এসওজিএল ভি0.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(...))।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.