उद्देश्य
एक ऐसी दिनचर्या लिखें, जो मुद्रण योग्य ASCII वर्णों की एक स्ट्रिंग को स्वीकार करता है, s , और एक स्ट्रिंग देता है जिसमें s , समान अक्षर होते हैं , ताकि कोई भी दो-वर्ण प्रतिस्थापन एक से अधिक बार न दिखाई दे। कार्यक्रम को एक आधुनिक कंप्यूटर पर प्रत्येक बेंचमार्क स्ट्रिंग्स (नीचे देखें) को एक मिनट के भीतर संसाधित करना होगा । मैं सबसे कम स्कोरिंग उत्तर के लिए 50 प्रतिनिधि के विशेष बोनस को भी पुरस्कार दूंगा जो किसी भी वैध 30-वर्ण स्ट्रिंग को एक मिनट के भीतर संसाधित करता है ।
उदाहरण के लिए, इनपुट को देखते हुए Mississippi
, एक वैध आउटपुट होगा issiMspiips
(कोई दो-चरित्र सब्सट्रिंग दो बार दिखाई नहीं देगा), जबकि एक अवैध आउटपुट होगा ipMsispiiss
(चूंकि प्रतिस्थापन is
दो बार दिखाई देता है)।
दिनचर्या का रूप ले सकते हैं:
stdin
(या समतुल्य) या कमांड लाइन, और आउटपुटstdout
(या समतुल्य) से पढ़ने का पूरा कार्यक्रम- एक फ़ंक्शन एक एकल स्ट्रिंग तर्क को स्वीकार करता है और एक स्ट्रिंग लौटाता है
आप मान सकते हैं कि इनपुट स्ट्रिंग हमेशा कम से कम एक वैध आउटपुट को स्वीकार करती है।
चुनौती
आपकी दिनचर्या में कोड की 5 या अधिक पंक्तियाँ शामिल होनी चाहिए जो नई सूचियों से अलग हो। खाली लाइनें (जिसमें केवल व्हॉट्सएप वाली लाइनें शामिल हैं) को सभी संदर्भों में नजरअंदाज कर दिया जाता है और कुल पंक्ति गणना की ओर गिनती नहीं की जाती है।
अपने स्रोत कोड में किसी भी दो लाइनों को स्वैप करने से एक घातक त्रुटि उत्पन्न होनी चाहिए । "घातक त्रुटि" द्वारा, हम निम्न में से किसी भी स्थिति का उल्लेख करते हैं:
- स्रोत कोड संकलक / दुभाषिया के साथ एक घातक त्रुटि की घोषणा करने में विफल रहता है
- नियमित रनटाइम घातक त्रुटि या एक अनहेल्ड रनटाइम अपवाद के साथ गर्भपात होता है
- दिनचर्या को एक अचानक, असामान्य कार्यक्रम समाप्ति में मजबूर किया जाता है जो संभावित त्रुटि संदेश और / या स्टैक डंप को छोड़कर किसी भी प्रकार का कोई उत्पादन नहीं करता है
वैकल्पिक रूप से , कोड के सन्निहित ब्लॉक जिनमें कोई नई रेखा वर्ण नहीं है, का उपयोग लाइनों के स्थान पर किया जा सकता है। इन ब्लॉकों को प्रत्येक को स्रोत फ़ाइल में अपनी लाइन पर प्रदर्शित किया जाना चाहिए, इस समझ के साथ कि स्रोत कोड संकलित / व्याख्या किए जाने से पहले नए सिरे से छीन लिए जाते हैं।
उदाहरण के लिए, कोड
aaaa
bbbb
cccc
के लिए घनीभूत होगा
aaaabbbbcccc
मूल्यांकन किए जाने से पहले।
इस मोड में, किसी भी दो कोड ब्लॉक को स्वैप करने के लिए घातक त्रुटि की स्थिति लागू होती है (और इस तरह से नए कोड के बाहर निकलने से पहले स्रोत कोड में लाइनों को स्वैप करने के लिए)। इसलिए उपर्युक्त उदाहरण में रूटीन aaaaccccbbbb
, bbbbaaaacccc
और ccccbbbbaaaa
रनटाइम या रनटाइम में सभी को घातक त्रुटियों का उत्पादन करना चाहिए।
इस वैकल्पिक मोड का उपयोग करने वाले सबमिशन को इसके उपयोग की घोषणा करनी चाहिए।
स्कोरिंग
चलो n हो अपने स्रोत फ़ाइल में गैर खाली textlines की संख्या, के साथ n ≥ 5. Let c द्वारा शामिल बाइट की संख्या हो सबसे लंबे समय तक textline अपने स्रोत फ़ाइल में (बाइट लंबाई से), किसी भी अनुगामी न्यू लाइन गिनती नहीं।
सबमिशन का स्कोर c ( n + 10) द्वारा दिया जाता है ।
सबसे कम स्कोर के साथ प्रस्तुत करने वाला विजेता है।
शुभकामनाएँ। ;)
बेंचमार्क स्ट्रिंग्स
Abracadabra Alacazam
Is Miss. Mississauga Missing?
Ask Alaska's Alaskans
GGGGAAAATTTTCCCCgggaaatttccc
A Man A Plan A Canal Panama
Mspiisiipss
। एकमात्र पुनरावृत्ति के बाद से वैध है ii
जो इसमें नहीं होता है Mississippi
?
CooliO
, आउटपुटoOoCli
?