आपको डिक्टेशन लेने वाले ऐप के लिए कुछ कोड लिखने के लिए काम पर रखा गया है, जो किसी स्पोक स्रोत से वॉयस इनपुट लेता है, इसे शब्दों के रूप में पार्स करता है, और इसे स्क्रीन पर लिखता है।
प्रबंधन वास्तव में आप पर इतना भरोसा नहीं करता है कि इस परियोजना में बहुत अधिक शक्ति है - आप अपने काम को करने के बजाय पूरे दिन चारों ओर और गोल्फ कोड में बैठने के लिए जाने जाते हैं, दुर्भाग्य से-इसलिए वे सिर्फ आपको प्रदर्शन करने के लिए एक बहुत ही सरल काम देते हैं: बारी उचित रूप से स्वरूपित वाक्य में प्रतिच्छेद विराम चिह्न के साथ वाक्य, जहां 'ठीक से स्वरूपित' को नीचे परिभाषित किया गया है।
वाक्य इनपुट का तार है। एक शब्द, विशिष्ट गैर-अंतरिक्ष वर्णों का एक समूह है। एक विराम चिह्न एक शब्द है जिसका पहला चरित्र है
^
।यदि शब्द का पहला अक्षर एक निचला अक्षर नहीं है, तो एक शब्द को पूंजीकृत किया जाता है (पूंजीकृत शब्द रेगेक्स से मेल खाता है
/[^a-z].*/
)।वाक्य का पहला शब्द पूंजीकृत होना चाहिए।
A
^COMMA
अल्पविराम वर्ण है,
और इसके पीछे एक स्थान है लेकिन पूर्ववर्ती नहीं है।aaa ^COMMA bbb
बन जाता हैaaa, bbb
।A
^COLON
एक अल्पविराम है जो दिखता है:
।A
^SEMICOLON
एक अल्पविराम है जो दिखता है;
।A
^PERIOD
एक अल्पविराम है जो दिखता है.
। निम्नलिखित शब्द^PERIOD
को बड़ा करना होगा।A एक
^BANG
ऐसा काल है जो दिखता है!
।A एक
^DASH
डैश कैरेक्टर है-
और इसमें पूर्ववर्ती और बाद में दोनों जगह है।A
^HYPHEN
भी डैश कैरेक्टर है,-
लेकिन इसके पीछे कोई जगह नहीं है या पूर्ववर्ती नहीं है।एक
^EMDASH
हाइफ़न है (डैश नहीं!) वर्तनी है--
।एक
^OPENQUOTE
उद्धरण चरित्र"
है जिसमें एक स्थान है पूर्ववर्ती लेकिन निम्नलिखित नहीं। निम्नलिखित शब्द^OPENQUOTE
को बड़ा होना चाहिए। यदि कोई^OPENQUOTE
ऐसे शब्द से पहले है जो विराम चिह्न नहीं है, तो^COMMA
उस शब्द और a के बीच में जोड़ें^OPENQUOTE
। यदि कोई^OPENQUOTE
ऐसा पंक्चुएशन है, जो अगले शब्द को बड़ा कर देता है, तो यह^OPENQUOTE
शब्द अगले शब्द पर आ जाता है।ए
^CLOSEQUOTE
वह डाइग्राफ,"
है जिसमें निम्नलिखित स्थान होता है लेकिन पूर्ववर्ती नहीं। यदि एक^CLOSEQUOTE
एक से पहले किया जाता है^COMMA
,^PERIOD
या^BANG
, कि विराम चिह्न गायब हो जाता है और^CLOSEQUOTE
लिखा जाता है,"
,."
या!"
क्रमशः। यदि गायब होने वाले विराम चिह्न ने एक कैपिटलाइज़ेशन निर्दिष्ट किया है, तो वह कैपिटलाइज़ेशन अभी भी अगले उपलब्ध शब्द पर होना चाहिए।पूर्ण अंतिम परिणाम में प्रारंभिक या अनुगामी रिक्त स्थान को हटाया जाना चाहिए, और एक पंक्ति में दो या दो से अधिक रिक्त स्थान के सभी स्ट्रिंग को एक ही स्थान वर्ण में ढह जाना चाहिए।
किसी भी मामले उपरोक्त में शामिल नहीं (जैसे
^COMMA ^COMMA
या^SEMICOLON ^CLOSEQUOTE
या^UNDEFINEDPUNCTUATION
) अच्छी तरह से गठित इनपुट में घटित नहीं होगा और इस प्रकार अपरिभाषित व्यवहार है।
विकास दल आपको निम्नलिखित के बारे में सूचित करता है:
इस परियोजना को भाषा [आपकी भाषा यहाँ] में लिखा जा रहा है , और यह जितना संभव हो उतना कम होना चाहिए ताकि यह एंड्रॉइड / आईफोन के लिए एक ऐप के रूप में संभव हो सके। आप यह समझाने की कोशिश करते हैं कि ऐप विकास कैसे काम करता है, लेकिन वे नहीं सुनते। लेकिन हे, क्या संयोग है! आप [अपनी भाषा में] यहाँ एक अद्भुत गोल्फ खिलाड़ी हैं !
ऐप में कोई वेब एक्सेस की अनुमति नहीं होगी, और कोई भी लाइब्रेरी स्थापित नहीं होगी जो आपके लिए यह फ़ॉर्मेटिंग करें। आप अपनी टीम के लिए एक रेगीक्स लाइब्रेरी की अनुमति देने के लिए शायद टीम लीड को मना सकते हैं, हालांकि अगर आपको लगता है कि आपको एक की आवश्यकता है।
नेस्टेड कोटेशन के लिए समर्थन जो एप्लिकेशन के बाद के संस्करण के लिए ठीक से डबल / सिंगल कोट्स का उपयोग करता है, लेकिन उस संस्करण के लिए नहीं, जो आप अभी काम कर रहे हैं, इसलिए इसके बारे में चिंता न करें।
प्रबंधन परीक्षण-संचालित विकास का बहुत बड़ा प्रशंसक है, और इसलिए देव टीम के पास पहले से ही कुछ असहाय कीबोर्ड बंदर है, जो आपके कार्यक्रम के कुछ हिस्सों के लिए कुछ परीक्षण लिखते हैं: (पठनीयता के लिए नए सिरे से जोड़े गए, उन्हें रिक्त स्थान के रूप में मानते हैं)
इनपुट:
hello ^COMMA world ^BANG
आउटपुट:
Hello, world!
इनपुट:
once upon a time ^COMMA there was a horse ^PERIOD that horse cost me $50 ^PERIOD ^OPENQUOTE eat your stupid oats ^COMMA already ^BANG ^CLOSEQUOTE I told the horse ^PERIOD the horse neighed back ^OPENQUOTE no ^CLOSEQUOTE and died ^PERIOD THE END
आउटपुट:
Once upon a time, there was a horse. That horse cost me $50. "Eat your stupid oats, already!" I told the horse. The horse neighed back, "No," and died. THE END
इनपुट:
begin a ^PERIOD b ^COMMA c ^COLON d ^SEMICOLON e ^BANG f ^HYPHEN g ^DASH h ^EMDASH i ^OPENQUOTE j ^PERIOD ^OPENQUOTE k ^SEMICOLON ^OPENQUOTE l ^CLOSEQUOTE m ^BANG ^CLOSEQUOTE n ^PERIOD 0x6C6F6C end
आउटपुट:
Begin a. B, c: d; e! F-g - h--i, "j. "K; "l," m!" N. 0x6C6F6C end
यह एक कोड गोल्फ है: सबसे कम स्कोर जीतता है। आप एक स्ट्रिंग तर्क, या एसटीडीआईएन से पढ़ने और एसटीडीयूएसटी पर लिखने का एक कार्यक्रम लिख सकते हैं।
prompt()
?