यह एक डबल + हैडर है!


13

सम्बंधित

प्रदर्शनी

SO रैफल जीतने के बाद, आप दुनिया में शीर्ष पर हो सकते थे, और आप थे! रैफ़ल एक साल से चल रहा था, अब, और आप एक सौ प्रोग्रामर में से एक थे, जिन्हें एसओएच में प्रवेश करने के लिए चुना गया था। और आखिरकार, इंतजार खत्म हुआ। आज वह दिन है, जिस दिन आप जाते हैं - [अस्पष्ट पाठ आय]।

ओह। क्षमा करें, बताने वाला नहीं है।

किसी भी तरह, आप अंत में एक काले सूट में एक छोटे से एसओ प्रतीक के साथ एक कठोर चेहरे वाले व्यक्ति से मिलने पहुंचे हैं। वह आप पर फिदा है। "अन्य लोग पहले से ही अंदर हैं," उन्होंने कहा, यह देखते हुए कि आपको गेट पर पहचाना गया था। "जल्दी से।"

तुम भीतर भागते हो, एक ताड डरता है। पृथ्वी पर क्या हुआ था? एसओ में गलत क्या था? अंदर, आप निरीक्षण करते हैं अन्य 99 प्रोग्रामर अपनी स्क्रीन पर, टाइपिंग करते हुए स्पष्ट रूप से घूर रहे हैं। आप शेष सीट लेते हैं, और निम्न संदेश के साथ अभिवादन किया जाता है:

हैलो, प्रोग्रामर! ऐसा लगता है कि हमने एक समस्या का सामना किया है; एसओ को प्रवेश दिया गया है, जिनके द्वारा हम नहीं जानते हैं। (व्यक्तिगत रूप से, मुझे संदेह है कि यह एक पायथ या सीजेएम प्रोग्रामर था, लेकिन हे।) हालांकि, नुकसान पहुंचाने वाले सभी मार्कडाउन संपादक हैं। ठीक है, वास्तव में, यह काफी है, लेकिन यह वह जगह है जहां आप आते हैं।
मैं चाहता हूं कि आप एक प्रोग्राम (या फ़ंक्शन, हम पिकी नहीं हैं) बनाएं जो एक मार्कडाउन फ़ाइल की व्याख्या करेगा और इसे हमारे नए "एसओ ब्यूटीफायर-एमिटी" में बदल देगा। -Decomposer "(उर्फ" SOBAD ") प्रारूप। आपको इसे कम से कम बाइट्स में करना चाहिए - जब तक हम इस हैकिंग समस्या को हल नहीं करते हैं, तब तक हम निम्नता पर चल रहे हैं। अपने समय के लिए धन्यवाद, और शुभकामनाएँ!

ईमानदारी से,
ढेर अतिप्रवाह के निर्माता


उद्देश्य आपके प्रस्तुत करने, प्रदर्शन करने और इनपुट पर निम्नलिखित परिवर्तनों के आउटपुट के रूप में एक मान्य मार्कडाउन फ़ाइल को देखते हुए:

(जब मैं +प्रतीक का उपयोग करता हूं, मेरा मतलब है RegExp "पिछले चरित्र के एक या अधिक उदाहरण" ऑपरेटर, न कि शाब्दिक शाब्दिक संकेत।)

  • सभी CAPS बनने के साथ सभी लेवल 1 हेडर ( # ...या ...\n=+) में ट्रांसफ़ॉर्म करें ।{ ... }...
  • प्रत्येक शब्द को बड़े अक्षरों के साथ सभी स्तर 2 हेडर ( ## ...या ...\n-+) में परिवर्तित करें{{ ... }}
  • सभी स्तरों 3 हेडर ( ### ...) को छोटे कैप में बदलना ; यही है, सभी पत्र (मामले असंवेदनशील) ᴀʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢएक संबंधित फैशन में मैप किए जाते हैं ।
  • सभी CAPS बनने के साथ सभी बोल्ड इंस्टेंस ( **...**) को ट्रांसफ़ॉर्म करें ।......
  • सभी इटैलिक इंस्टेंसेस ( _..._) को ट्रांसफ़ॉर्म करें . . ., जहां प्रत्येक जोड़े के पात्रों के बीच एक स्थान डाला गया है।
  • सभी कोड इंस्टेंसेस ( `...`) को ट्रांसफ़ॉर्म करें < ... >
  • सभी स्ट्राइकथ्रू इंस्टेंसेस ( ---...---) को ट्रांसफ़ॉर्म करें -.-.-.-, जहां -प्रत्येक जोड़े के बीच एक अक्षर डाला गया है।
  • सभी गिने सूची उदाहरणों ( N. {a}\nN. {b} ...जहाँ Nरेगेक्स से मेल खाता है [0-9]+) को ( 1. {a}\n 2. {b}...) में बदलें
  • सभी अनियंत्रित सूची इंस्टेंस ( * ...\n* ......) को ( o ...\n o ......) में बदलें

अधिक जानकारी

  • हेडर और सूची उदाहरण केवल लाइनों की शुरुआत में मिलेंगे, हालांकि, वे व्हॉट्सएप की मात्रा से घिरे हो सकते हैं।
  • कोई लिंक किया जाएगा उदाहरणों, जैसे, *a_*a_हमारे मानकों के लिए मान्य नहीं है, और न ही पसंद करेंगे कुछ भी __a__, *_a_*या _*a*_एक इनपुट में दिखाई देते हैं।
  • मल्टीलाइन हेडर मान्य है और यदि केवल -या तो =सीधे टेक्स्ट की एक पंक्ति का अनुसरण करता है।
  • किसी भी हेडर में अन्य मार्कडाउन इकाइयां नहीं होंगी। जैसे, # `code` snippetहमारे उद्देश्यों के लिए एक वैध इनपुट नहीं है
  • आपको स्तर 4+ हेडर के लिए खाता नहीं है
  • आपको > 1फ़ाइल के भीतर अतिरिक्त स्थान (यानी रिक्त स्थान) को संरक्षित करने की आवश्यकता नहीं है , इसलिए यह **hello there**बन जाना ठीक है **hello there**लेकिन नहीं **hellothere**। इसी तरह, एक लाइन पर पाए जाने वाले ट्रेलिंग और प्रमुख स्थानों को संरक्षित करने की आवश्यकता नहीं है
  • इनपुट में कोई भी टेबुलेटर नहीं मिलेगा।
  • वहाँ कोई स्थापित संस्थान नहीं होंगे। उदाहरण के लिए, ***...***कभी नहीं होगा।
  • एक स्थान हमेशा एक अनियंत्रित बुलेट बिंदु का अनुसरण करेगा (जैसे, * ...नहीं *...)
  • क्रमबद्ध और अनियंत्रित सूचियों की सूची में हमेशा एक ही पंक्ति शामिल होगी।
  • वर्णों की बेजोड़ जोड़ी को नजरअंदाज किया जाना चाहिए। जैसे, ** coolऔर `java::defवैसा ही रहना चाहिए।

इनपुट के तरीके

इनपुट निम्न में से एक होना चाहिए:

  1. एक सरणी / टपल / सूची / आदि। तार के।
  2. या अलग लाइनों के लिए newlines युक्त एक स्ट्रिंग।

यदि आपकी भाषा उनका समर्थन नहीं करती है, तो उपरोक्त डेटा प्रकारों के लिए अपनी भाषा के निकटतम समकक्ष का उपयोग करें। (जैसे, TI-BASIC समर्थन नहीं करता है (१.) ... ऐसा नहीं है कि TI-BASIC किसी भी तरह से प्रतिस्पर्धा कर सकता है: P)।

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

एक }प्रतीक इनपुट, और अगली पंक्ति का प्रतीक उत्पादन। एकाधिक }s पाठ के न्यूलाइन-सेपरेटेड लाइनों को दर्शाता है।

} 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 --

बक्शीश

  1. -19 बाइट्स यदि आप पात्रों के भागने का समर्थन करते हैं (ताकि उन्हें "सामान्य" माना जाए); आप किसी भी भागने के चरित्र का चयन कर सकते हैं, लेकिन मैं सुझाव दूंगा \या ^। ध्यान दें कि SO साइटों पर भागने की प्रणाली जो मैं सुझाव दे रहा हूं (और अधिक जटिल) से अलग है, इसलिए ऐसा न करें! एसओ के `\`रूप में इलाज करेगा \, लेकिन मैं चाहता हूं कि आप दूसरे के `साथ एक नियमित चरित्र के रूप में व्यवहार करें , और इसके बजाय अगले ` चरित्र से मेल खाएं ।

2
गोल्फ प्रश्न के लिए कल्पना बहुत कमजोर है।
feersum

4
धन्यवाद, downvoters, मुझे बताने के लिए कि मैं क्या गलत कर रहा हूं। यह वास्तव में मुझे इस प्रश्न को बेहतर बनाने में मदद करता है।
कॉनर ओ'ब्रायन

4
मुझे लगता है कि ऐसे मामले हैं जहां एक परिवर्तन लागू करने से एक और परिवर्तन लागू हो सकता है। उदाहरण के लिए, ***word***हो जाता है * * w o r d * *के बाद आप इटैलिक परिवर्तन लागू होते हैं, और अचानक बोल्ड परिवर्तन लागू नहीं होता। यह स्पष्ट नहीं है कि इसे कैसे संभालना है।
रेनबोबल

1
@ C @O'Bʀɪᴇɴ टिप्पणियों में नोट किए गए कई मुद्दे हैं, जिनकी चर्चा होती है। मुझे नहीं लगता कि डाउनवोटर्स प्रतिक्रिया देने के लिए उद्देश्यपूर्ण उपेक्षा कर रहे हैं; वे संभवतः मौजूदा प्रतिक्रिया को बढ़ा रहे हैं।
एलेक्स ए।

1
@AlexA। जब दोनों डाउनवोट होते हैं, तो कोई भी टिप्पणी नहीं की जाती है, न ही बाद की अवधि के लिए।
कॉनर ओ'ब्रायन

जवाबों:


1

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

import re
def N(o):c,t,_=o.groups();x=' -'[c<'_'];return['< %s >'%t,t.upper()][c<'`']if c in'**`'else x+x.join(t)+x
def f(s):
 S=[];i=0
 while s:
  l=s.pop(0);n=set(*s[:1])
  if n<={*'=-'}and n:s=s[1:];l='#'*('-'in n)+'# '+l
  if'# '==l[:2]:l='{%s}'%l[2:].upper()
  if'## '==l[:3]:l='{{%s}}'%l[3:].title()
  if'### '==l[:4]:l=''.join('ᴀʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ'[ord(c)-65]if'@'<c<'['else c for c in l[4:].upper())
  l=re.sub(('(\*\*|_|---|`)(.*?)'*2)[:-5],N,re.sub(r'^\s*[*] (.*)',r' o \1',l))
  if re.match(r'\s*\d+\. ',l):i+=1;l=re.sub(r'\s*\d+\.(.*)',' %d.'%i+r'\1',l)
  else:i=0
  S+=[l]
 return S

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

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