Mesesesessesseesseessedessed upp teeexexextext को ठीक करें


38

यह सोमवार मिनी-गोल्फ # 6 से प्रेरित है : मेइसेसेसिस अप्प टीएक्सएक्सएक्सटेक्स्ट

पृष्ठभूमि

ETHproductions को उसके सामान्य वेबपेज पर पाठ दर्ज करने में कठिनाई होती है। जब भी वह अंकों या अक्षरों का उपयोग करता है, पाठ meeesesessesseesseessedessed होगा। आपका काम उसे टाइप करने में मदद करना है ताकि सामान्य व्यवहार हासिल हो सके।

परिवर्तन

यह परिवर्तन अल्फ़ान्यूमेरिक ( [0-9A-Za-z]) वर्णों के प्रभाव को प्रभावित करता है जो किसी भी ग़ैर-अलौकिक वर्ण द्वारा परिसीमित होता है। निम्नलिखित उदाहरण में, पहली पंक्ति दूसरी में रूपांतरित हो जाएगी (अन्य रेखाएं परिवर्तन के टूटने को दर्शाती हैं)

An12num:
Annn1n12n12nn12nn12nun12nun12numn12num
A
 nn
   n1
     n12
        n12nn12n
                n12nun12nu
                          n12numn12num

विशेष रूप से, एक रन के बाद किसी भी अल्फ़ान्यूमेरिक वर्ण को पहले वर्ण को छोड़कर अब तक पूरे रन में बदल दिया जाएगा । इसके अलावा, यदि चरित्र एक अक्षर है (एक अंक के विपरीत), तो चरित्र को दो बार रन में बदल दिया जाएगा ।

शुक्र है, बैकस्पेस पिछले चरित्र को हटा देगा और रन की शुरुआत को भी रीसेट करेगा।

कार्य

इस समय आपका कार्य परिवर्तन करना नहीं है। इसके बजाय, एक इनपुट स्ट्रिंग दी गई है, आपको एक एन्कोडेड पाठ वापस करना होगा, जो यदि रूपांतरित होता है, तो इनपुट में परिणाम होगा। आउटपुट जितना संभव हो उतना छोटा होना चाहिए, जहां \<char>एक एकल वर्ण के रूप में गिना जाता है।

पाठ निम्नानुसार एन्कोडेड है:

\                   -> \\
backspace character -> \b
linefeed            -> \n

आप STDIN (या निकटतम विकल्प), कमांड-लाइन तर्क या फ़ंक्शन तर्क के माध्यम से इनपुट लेने और STDOUT (या निकटतम वैकल्पिक), फ़ंक्शन रिटर्न मान या फ़ंक्शन (आउट) पैरामीटर के माध्यम से परिणाम आउटपुट कर सकते हैं, एक प्रोग्राम या फ़ंक्शन लिख सकते हैं।

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

प्रत्येक परीक्षण का मामला दो लाइनें हैं, पहला इनपुट, दूसरा आउटपुट।

Heeeeeelp me. It shouldn't be messed up.
Hee \blp\b me\b. It\b sh\bou\bld\bn't be\b me\bss\bed\b up\b.

alert("Hello, world!");
al\ber\bt("He\bll\bo, wo\brl\bd!");

1223234234523456
123456

6
यह अच्छी तरह से परिभाषित है, लेकिन कोई जवाब क्यों नहीं है?
अकांगका

1
किसी तरह मुझे यह याद आया; अच्छा स्पिन-ऑफ! शायद मैं बाद में एक उत्तर लिखने की कोशिश करूंगा।
16

यह मुझे उस समय की याद दिलाता है, जब मेरे एक मित्र ने यूडीपी
टीआरजीडब्ल्यूआई

1
मुझे लगता है कि आपके अंतिम परीक्षण मामले को ठीक करने की आवश्यकता है। आप पहले चरित्र ( 1हर बार) को रनों में शामिल करते हैं।
लीफ विलर्ट्स

मैं ईमानदारी से समझ नहीं पा रहा हूं कि मुझे क्या करना चाहिए ... सॉरी। क्या आप कुछ इनपुट और आउटपुट जोड़ सकते हैं और स्पष्टीकरण के साथ कुछ उदाहरण जोड़ सकते हैं? माफ़ कीजिये।
यिसन हजाज

जवाबों:


10

CJam, 207

{_,1>{:E1<_0{:I2$,+E=:C+:R1>C'9>)*+:P,E,<{EP#{L0}{PRI)1}?}{PE#L{R8cP,E,-*+}?0}?}g}&}:U;LqS+'a+{_'[,_el^A,s+&,V={+}{s\V!:V{L{:BU_aL?B,,1>Bf{_2$<U_{_W=8>S8c+*+\@>j+}{?;}?}+{,}$0=}j}|\}?}%s'\8cN++'\"\bn"f+er-2<

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

स्पष्टीकरण:

लगभग यह लिखना भूल गए: पी

समस्या को कई चरणों में हल किया जाता है:

  • पाठ अल्फ़ान्यूमेरिक वर्णों के रन में विभाजित किया गया है (चलो उन्हें शब्द कहते हैं) और गैर-अल्फ़ान्यूमेरिक वर्ण (गैर-शब्द) के रन
  • गैर-शब्द मुद्रित किए जाते हैं जैसे वे हैं, और शब्द निश्चित हैं
  • एक शब्द को ठीक करना पुनरावृत्ति (संस्मरण के साथ) किया जाता है: शब्द को हर संभव तरीके से 2 टुकड़ों में विभाजित करें (खाली 2 ठूंठ सहित), पहला हिस्सा काटने का प्रयास करें (नीचे देखें), 2 वें भाग को ठीक करें और एक स्थान के साथ परिणामों में शामिल हों -बाहर जरूरत पड़ने पर; सबसे छोटा उप-समाधान लें
  • चंक को अनसुना करने का अर्थ है कि अल्फ़ान्यूमेरिक वर्णों की एक न्यूनतम स्ट्रिंग को खोजने के बाद संभवतः कुछ बैकस्पेस (लेकिन बीच में कोई बैकस्पेस नहीं) के साथ होता है कि जब गड़बड़ हो जाती है, तो दिए गए चंक में परिणाम होता है; यह एक सरल लालची एल्गोरिथ्म के साथ किया जाता है, बाएं से दाएं जा रहा है, समानांतर में बिना तार और इसके गड़बड़ संस्करण का निर्माण, और प्रत्येक चरण पर अगले आवश्यक चरित्र का निर्धारण; कुछ अंशों को अनमना नहीं किया जा सकता है

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