Ambil tiga input, serangkaian teks T
,; serangkaian karakter untuk menggantikan F
,; dan serangkaian karakter untuk menggantikannya dengan R
,. Untuk setiap substring T
dengan karakter yang sama (tidak sensitif huruf) F
, gantilah dengan karakter dalam R
. Namun, simpan case yang sama dengan teks aslinya.
Jika ada lebih banyak karakter R
dari pada F
, karakter tambahan harus sama dengan mereka R
. Jika ada angka atau simbol di dalamnya F
, maka karakter yang sesuai di dalamnya R
harus menyimpan case-nya R
. F
belum tentu muncul di T
.
Anda dapat mengasumsikan semua teks akan berada dalam kisaran ASCII yang dapat dicetak.
Contohnya
"Text input", "text", "test" -> "Test input"
"tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT"
"The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY n the sm OH MY OH MY th planks"
"The score was 10 to 5", "10", "tEn" -> "The score was tEn to 5"
"I wrote my code in Brain$#@!", "$#@!", "Friend" -> "I wrote my code in BrainFriend"
"This challenge was created by Andrew Piliser", "Andrew Piliser", "Martin Ender" -> "This challenge was created by Martin Ender"
// Has a match, but does not match case
"John does not know", "John Doe", "Jane Doe" -> "Jane does not know"
// No match
"Glue the sheet to the dark blue background", "Glue the sheet to the dark-blue background", "foo" -> "Glue the sheet to the dark blue background"
// Only take full matches
"aaa", "aa", "b" -> "ba"
// Apply matching once across the string as a whole, do not iterate on replaced text
"aaaa", "aa", "a" -> "aa"
"TeXT input", "text", "test" -> "TeST input"
code-golf
string
code-golf
string
ascii-art
alphabet
code-golf
number
sequence
counting
code-golf
sequence
counting
code-golf
quine
source-layout
code-golf
string
code-golf
decision-problem
game
code-golf
string
quine
source-layout
subsequence
code-golf
quine
code-golf
array-manipulation
integer
code-golf
ascii-art
code-golf
sequence
integer
code-golf
kolmogorov-complexity
code-golf
array-manipulation
integer
code-golf
number
array-manipulation
integer
code-golf
string
number
integer
code-golf
string
ascii-art
code-challenge
test-battery
expression-building
source-layout
printable-ascii
code-bowling
code-golf
number
code-golf
number
string
binary
code-golf
matrix
conversion
code-golf
number
arithmetic
Andrew
sumber
sumber
"TeXT input", "text", "test"
"The birch canoe slid on the smooth planks", "o", " OH MY "
sangat lucu, tetapi saya menyukai contoh itu.Jawaban:
Retina , 116 byte
Cobalah online! Penjelasan:
Pencarian ini
T
dan setiap kali ada pertandingan yang case-sensitive terhadap lookahead untukF
pertandingan dikelilingi dalam banyak baris baru dan lookahead untukR
juga dimasukkan.Setiap surat salinan
R
disesuaikan jika cocok dengan yang cocok, berikut ini dipindahkan dari wilayah kerja sehingga surat berikutnya dapat diproses, sampai salinanR
atau pertandingan kehabisan surat.Jika salinan
R
kehabisan surat, maka sisa pertandingan akan didahului oleh 4 baris baru, jadi hapuslah. Kalau tidak, apa pun yang tersisa akan menjadi sisa salinanR
yang perlu disatukan dengan bagian input yang tidak cocok untuk menghasilkan hasilnya.sumber
APL (Dyalog) ,
757372 byteAnjuran untuk
T
,,R
danF
dalam urutan itu.R
harus b diberikan dalam format transformasi Dyalog danF
harus diberikan dalam format PCRE.Cobalah online!
⍞
memintaT
⊢
hasilkan itu (pisahkan 1 danT
)⍞⎕R(
...)⍠1
cepatF
dan R eplace cocok dengan hasil dari fungsi berikut:⍞∘{…}
mendapatkan fungsi monadik dengan mengikat diminta-untukR
sebagai argumen kiri ke:≢⍺
hitung jumlah huruf dalamR
⍺⍵.Match↑¨⍨
ambil banyak surat dari masing-masingR
dan korek api⍺
adalah argumen kiri, yang kami ikatR
sebagai.⍵
adalah namespace di manaMatch
berisi string yang saat ini ditemukan.↑
mencampur keduanya menjadi matriks dua barisd←
simpan sebagaid
(
...)
terapkan fungsi tersembunyi berikut untuk itu:819⌶
huruf kecil (mnemonik: 819 tampak seperti Besar )l←
menyimpan fungsi itu sebagail
d≠
Boolean dimanad
berbeda (yaitu memberi 0/1 untuk setiap huruf kecil / huruf besar)(
...)
terapkan fungsi tersembunyi berikut untuk itu:≠⌿
XOR vertikal(
…)∧
Boolean DAN dengan larik berikut:l⎕A
lowercased A lphabet⎕A,
huruf kapital prependen A lphabetd∊
Boolean untuk setiap huruf dalam d apakah anggota itu (yaitu apakah surat)⊢⌿
baris terakhir yaitu untuk karakter pertandingan apakah itu huruf1∘⌷≠
XOR dengan baris pertama, yaitu apakah setiap karakterR
huruf besar(
...)l¨⍨
gunakan itu untuk huruf kecil (jika 0) atau huruf besar (jika 1) setiap huruf dari:⊣⌿
baris pertama, yaituR
* Hitungan Byte untuk Dyalog Classic menggunakan
⎕OPT
bukan⍠
.sumber
Perl 5 , 108 byte
107 byte kode +1 untuk
-p
.Cobalah online!
sumber
Ditarik. Jawaban Dom mengalahkannya dengan tembakan panjang.
# Perl 5 , 136 + 1 (-p) = 137 byteCobalah online!
membuat luka besar setelah @ Hastings Hastings disebutkan
\Q
# Perl 5 , 176 +1 (-p) = 177 byteCobalah online!
sumber
PowerShell , 190 byte
Cobalah online!
Penjelasan:
Blokir script replacment tidak:
Kasus uji:
sumber
TXR Lisp, 285 byte
Asli yang diformat secara konvensional:
sumber
JavaScript, 177 byte
Tampilkan cuplikan kode
Kurang golf:
47 byte berasal dari fungsi pelarian regex ini karena program harus menangani simbol. :(
sumber
Python 2 ,
193200 byteCobalah online!
sumber
Python 3 , 183 byte
Cobalah online!
re.split
+ menjaga semua elemen genap dan mengganti semua elemen aneh dengan transformasi yang benar dari string pengganti:sumber
C (gcc) ,
210211207189 byteHarus menambahkan satu byte untuk memperbaiki bug dengan kapitalisasi untuk testcase "BrainFriend"
Wow, ini membosankan ... Sekarang untuk bermain golf beberapa byte
Cobalah online!
sumber
*(p=f)
ketika Anda mengaturp=c=t
setelahnya? Saya mencobanya dengan adil*f
dan tidak berhasil, jadi tidak segera ditimpa.*((char*)f)
? Keren!C # (Mono C # compiler) , 241 byte
Cobalah online!
sumber
Action<string,string,string> r =
bagian