sergi
SO çekilişini kazandıktan sonra, dünyanın tepesinde olabilirdiniz ve öyleydiniz! Çekiliş bir yıldır devam ediyordu ve siz SO kalesine girmek için seçilmiş yüz programcıdan birisiniz. Ve son olarak, bekleme bitti. Bugün gittiğiniz gün - [gizli metin ilerliyor].
Whoops. Üzgünüm, söylememeliydim.
Her neyse, nihayet, üzerinde küçük SO amblemi bulunan siyah elbiseli stoacı yüzlü bir adamla tanıştınız. Sana kaşlarını çattı. "Diğerleri zaten içeride," dedi kapıda tanımlandığınızı belirtti. "Hızlı bir şekilde."
İçeri koştun, biraz korktun. Ne oldu dünyada? SO'da yanlış olan neydi? İçeride, diğer 99 programcının ekranlarına dikkatle baktığını yazıyorsunuz. Kalan koltuğu alırsınız ve aşağıdaki mesajla karşılaşırsınız:
Merhaba programcı! Görünüşe göre bir sorunla karşılaştık; Bilmediğimiz SO'ya nüfuz etti. (Şahsen, bunun bir Pyth veya CJam programcısı olduğundan şüpheleniyorum, ama hey.) Ancak, zarar gören tek şey Markdown editörü. Aslında, bu oldukça fazla, ama içeri
girdiğiniz yer. İşaretleme dosyasını yorumlayacak ve yeni "SO Beautifier-Arity'ye dönüştürecek bir program (veya işlev, seçici değiliz) oluşturmanızı istiyorum . -Decomposer "(diğer adıyla" SOBAD ") biçimi. Bunu en kısa bayt miktarında yapmalısınız - bu hackleme sorununu çözene kadar aşağı iniyoruz. Zaman ayırdığınız için teşekkürler ve iyi şanslar!
Saygılarımızla,
Yığın Taşması Yapıcı
Amaç Gönderinize girdi olarak geçerli bir etiketleme dosyası verildiğinde, girdi üzerinde aşağıdaki dönüşümleri gerçekleştirin ve çıktısını alın:
( +Sembolü kullandığımda, RegExp "önceki karakterin bir veya daha fazla örneği" operatörünü kastediyorum, değişmez artı işareti değil.)
- Tüm Seviye 1 başlıklarını (Transform
# ...ya...\n=+kadar){ ... }ile,...TÜM CAPS olma. - Her 2. Seviye üstbilgiyi (
## ...veya...\n-+){{ ... }}, her kelimeyi büyük harfle dönüştür - Tüm Seviye 3 başlıklarını (
### ...) küçük harflere dönüştürün; diğer bir deyişle, tüm harfler (büyük / küçük harf duyarsız) ilgili bir şekilde eşlenirᴀʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ. - (Bütün kalın örneklerini Transform
**...**kadar)...ile,...TÜM CAPS olma. - Tüm italik örnekleri (
_..._). . .her karakter çifti arasında bir boşluk eklendiği yere dönüştürün . - Tüm kod örneklerini (
`...`) konumuna dönüştürün< ... >. - Tüm üstü çizili örnekleri (
---...---)-.-.-.-,-her karakter çifti arasına a eklendiği yere dönüştürün . - Tüm numaralı liste örneklerini ( normal ifadeyle eşleştiği
N. {a}\nN. {b} ...yerde ) ( )N[0-9]+1. {a}\n 2. {b}... - Sırasız tüm liste örneklerini (
* ...\n* ......) biçimine (o ...\n o ......) dönüştür
Daha fazla detay
- Üstbilgiler ve liste örnekleri yalnızca satırların başında bulunur, ancak bunlar bir miktar boşlukla çevrelenebilir.
- Hiçbir Orada örneğin, örneklerini bağlantılı olacak
*a_*a_bizim standartları için geçerli değil, ne gibi irade şey__a__,*_a_*ya_*a*_bir girdi görünür. - Çok satırlı bir başlık, yalnızca
-veya=s doğrudan bir metin satırını izliyorsa geçerlidir. - Hiçbir üstbilgide başka etiketleme öğeleri bulunmaz. Örneğin,
# `code` snippetamacımız için geçerli bir girdi değil - Seviye 4+ üstbilgilerini hesaba katmanız gerekmez
> 1Dosya içindeki fazla boşlukları (yani boşlukları) korumak zorunda değilsiniz , bu yüzden**hello there**olmak zorundasınız**hello there**ama olmamak sorun değil**hellothere**. Benzer şekilde, bir hatta bulunan takip eden ve öndeki boşlukların korunması gerekmez- Girişte hiçbir tablo bulunmayacak.
- GERÇEKLEŞTİRİLMEMİŞ DURUM YOKTUR. Örneğin,
***...***asla olmazdı. - Bir boşluk her zaman sırasız bir kurşun noktasını izler (Örn,
* ...değil*...) - Sıralı ve sırasız listelerdeki liste öğeleri her zaman tek bir satırdan oluşur.
- Eşleşmeyen karakter çiftleri yoksayılmalıdır. Örneğin,
** coolve`java::defaynı kalmalıdır.
Giriş yöntemleri
Giriş aşağıdakilerden biri olmalıdır:
- Bir dizi / grup / liste / vb. dizeleri.
- VEYA satırları ayırmak için yeni satırlar içeren bir dize.
Diliniz desteklemiyorsa, dilinizin yukarıda belirtilen veri türlerine en yakın eşdeğerini kullanın. (Örneğin, TI-BASIC (1.) 'i desteklemez… TI-BASIC her halükarda rekabet edebilir: P).
Test senaryoları
A }, girişi ve sonraki satır çıkışı gösterir. Çoklu }s, satır satırıyla ayrılmış metin satırlarını ifade eder.
} Hello!
Hello!
} That _2 + 2 = 5_ challenge sure was **intense!**
That 2 + 2 = 5 challenge sure was INTENSE!
// note that there are spaces also padding it
} It's `s/a/e/g` **not** `sudo g/a/e/s`, stupid.
It's < s/a/e/g > NOT < sudo g/a/e/s >
} **WHAT!** He did _WHAT?!_
WHAT! He did W H A T ? !
} _WHAT_ is undefined, here!
W H A T is undefined, here!
} OI)(EJDSFIJK L:JP #@*REF&WDS F*(D+S +&(SDFWEF )DSF _DSF_F #R#
OI)(EJDSFIJK L:JP #@*REF&WDS F*(D+S +&(SDFWEF )DSF D S F F #R#
} # So, you wanna be a programmer, eh?
} ## Step 1: learn recursion
} ### Learning recursion requires learning recursion
} **Programming** is a futile task. _Leave w h i l e you still can!_
{SO YOU WANNA BE A PROGRAMMER, EH?}
{{Step 1: Learn Recursion}}
ʟᴇᴀʀɴɪɴɢ ʀᴇᴄᴜʀsɪᴏɴ ʀᴇǫᴜɪʀᴇs ʟᴇᴀʀɴɪɴɢ ʀᴇᴄᴜʀsɪᴏɴ
PROGRAMMING is a futile task. L e a v e w h i l e y o u s t i l l c a n ! // trailing space not required
} Haha, you're a _Java_ golfer? You'd be better of with brainf***.
Haha, you're a J a v a golfer? You'd be better of with brainf***. // less than four asterisks, do nothing
} # Reasons why NOT to use C--:
} 1. It doesn't exist.
} 2. I don't care.
{REASONS WHY NOT TO USE C--:}
1. It doesn't exist.
2. I don't care.
} 1. This is a test!
} 1. <-- And this actually works in Markdown.
1. This is a test!
2. <-- And this actually works in Markdown. // less than three -s, ignore
} * no.
} * NOOO.
} * fine.
o no.
o NOOO.
o fine.
} Python, ---34--- 3 bytes.
Python, -3-4- 3 bytes.
} ---Long line of crossed text.---
-L-o-n-g- -l-i-n-e- -o-f- -c-r-o-s-s-e-d- -t-e-x-t-.-
} ** cool!
** cool! // is not a bullet point, because a space doesn't follow the *; Isn't bold, because there is no matching **
-- end of test cases --
Bonus
- Karakterlerin kaçmasını destekliyorsanız -19 bayt ("normal" olarak kabul edilir); herhangi bir kaçış karakteri seçebilirsin, ama öneririm
\ya^. SO sitelerinde kaçan sistemin önerdiğimden (ve daha karmaşık) farklı olduğunu unutmayın, bu yüzden yapmayın! SO`\`gibi davranırdı\, ama ikincisini`o zaman normal bir karakter olarak ele almanı ve bir sonraki`karakterle eşleşmeni istiyorum .
***word***olur * * w o r d * *ve aniden kalın dönüşüm uygulanmaz. Bununla nasıl başa çıkacağı belli değil.