(Tidak, bukan ini atau semua ini )
Diberikan string dan daftar string, isi semua kosong di string input dengan string yang sesuai.
Input output
String input hanya berisi karakter alfabet, spasi, dan garis bawah. Ini kosong dan tidak dimulai dengan garis bawah. Dengan kata lain, string input cocok dengan regex^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$
Setiap string dalam daftar input adalah kosong dan hanya berisi karakter dan spasi alfanumerik. Dengan kata lain, mereka cocok dengan regex ^[a-z A-Z]+$
.
Kosong adalah urutan garis bawah ( _
) yang berdekatan yang tidak didahului atau diproses oleh garis bawah.
String input berisi n
kosong untuk beberapa bilangan bulat positif n
, dan daftar string berisi n
string yang tepat .
Output diperoleh dengan mengganti masing-masing k
blank-in dalam string input dengan k
string -th dalam daftar input string.
Contoh
Diberikan string input "I like _____ because _______ _____ing"
dan daftar string ["ice cream", "it is", "satisfy"]
, kita dapat menemukan output sebagai berikut:
- Blank pertama langsung muncul setelahnya
"like "
. Kami mengisinya dengan"ice cream"
untuk mendapatkan"I like ice cream because ______ _____ing"
. - Blank kedua langsung muncul setelahnya
"because "
. Kami mengisinya dengan"it is"
untuk mendapatkan"I like ice cream because it is _____ing"
. - Kosong ketiga datang langsung setelahnya
"is "
. Kami mengisinya dengan"satisfy"
untuk mendapatkan"I like ice cream because it is satisfying"
.
Kami mengeluarkan string terakhir "I like ice cream because it is satisfying"
.
Uji Kasus
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"
sumber
Jawaban:
Cembung , 5 byte
Cobalah online!
Convex adalah bahasa berbasis CJam, dan jawaban ini hampir sama dengan jawaban CJam saya, kecuali
l~
yang tidak dibutuhkan di sini, karena Convex melakukan evaluasi argumen otomatis pada awal program.Penjelasan:
sumber
Japt , 8 byte
Uji secara online!
Saya merasa saya melewatkan beberapa tangkapan tersembunyi dalam aturan karena ini sangat sederhana: "ganti setiap garis bawah pada string dengan item berikutnya dalam array."
sumber
JavaScript, 35 byte
Cobalah online
sumber
a=>b=>String.raw({raw:a.split(/_+/)},...b)
Proton , 42 byte
Cobalah online!
Impor bodoh ...
Hal yang sama dengan python:
Python 3 , 53 byte
Cobalah online!
sumber
MATL , 9 byte
Cobalah online!
Penjelasan
sumber
CJam , 7 byte
Cobalah online!
-1 berkat trik pintar oleh Martin Ender .
Penjelasan:
sumber
.\
bukannya\]z
.\
adalah operator biner. :)[1 2 3]:_
->[1 1 2 2 3 3]
juga untuk.
...Jelly ,
87 byteCobalah online! Sunting: Disimpan 1 byte berkat @Erik the Outgolfer. Penjelasan:
sumber
Perl 5 , 25 + 1 (-p) = 26 byte
Cobalah online!
sumber
<>
untuk meniadakaneval
danshift
: Coba online! . Pasti ada cara untuk menghindari penggantian baris baru ...sub{shift=~s|_+|shift|egr}
. Jika Anda membalikkan argumen, Anda bisa menggunakanpop
dan menurunkannya menjadi 22 byte .Pyth , 10 byte
Coba di sini!
Bagaimana itu bekerja?
sumber
RProgN 2 , 11 byte
Mengambil string dan setumpuk string di bagian atas tumpukan.
Elemen pertama (atas) dari stack adalah ke kanan, maka input kanan ke kiri.
Dijelaskan
Cobalah online!
sumber
Java 8, 57 byte
Ketika saya membaca tantangan saya pada awalnya berpikir kita harus membuat kalimat yang benar secara tata bahasa dengan kata-kata yang berada dalam urutan acak, tetapi hanya mengganti baris dengan setiap kata berurutan lebih mudah. ;)
Penjelasan:
Coba di sini.
sumber
05AB1E , 12 byte
Cobalah online!
Penjelasan
sumber
C # (.NET Core) ,
9796 + 18 byteDisimpan 1 byte berkat Kevin Cruijssen !
18 byte untuk digunakan
System.Linq
.Cobalah online!
sumber
(s,l)=>
kes=>l=>
untuk menyimpan satu byte. Cobalah online!Ruby , 28 + 1 = 29 byte
Penggunaan
-p
Baris pertama adalah format string, sisanya adalah array.
Cobalah online!
sumber
Python 2 , 61 byte
Cobalah online!
Sial.
Python 2 , 63 byte
Cobalah online!
sumber
re.sub
fungsiDitumpuk , 21 byte
Cobalah online!
Mengganti semua proses
_
dengany shift
. Tidak ada yang asli, seperti yang terlihat.sumber
SOGL V0.12 , 7 byte
Coba Di Sini!
Penjelasan:
sumber
Python 2 , 49 byte
Cobalah online!
Input daftar diambil sebagai tuple. Mengizinkan daftar aktual sebagai input akan menambah tujuh byte lainnya, karena konversi diperlukan (
tuple(...)
).sumber