पृष्ठभूमि
पायथन 3 में कई प्रकार के स्ट्रिंग साहित्यिक हैं। उदाहरण के लिए, स्ट्रिंग this 'is' an exa\\m/ple
को इस प्रकार दर्शाया जा सकता है:
'this \'is\' an exa\\\\m/ple'
"this 'is' an exa\\\\m/ple"
r"this 'is' an exa\\m/ple"
'''this 'is' an exa\\\\m/ple'''
"""this 'is' an exa\\\\m/ple"""
r'''this 'is' an exa\\m/ple'''
r"""this 'is' an exa\\m/ple"""
जैसा कि आप देख सकते हैं, स्ट्रिंग्स के लिए अलग-अलग सीमांकक का उपयोग करके कुछ पात्रों के लिए आवश्यक भागने को बदलकर तारों को लंबा या छोटा किया जा सकता है। कुछ सीमांकक का उपयोग सभी तारों के लिए नहीं किया जा सकता है: r'
ऊपर गायब है (स्पष्टीकरण के लिए बाद में देखें)। कोडिंग गोल्फ में आपके तार जानना बहुत उपयोगी है।
एक में कई स्ट्रिंग शाब्दिक जोड़ सकते हैं:
'this \'is\' an ''''exa\\\\m/ple'''
"this 'is' an "r'exa\\m/ple'
चुनौती
पायथन में अपने सबसे छोटे शाब्दिक प्रतिनिधित्व को प्रस्तुत करने के लिए एक मुद्रण योग्य ASCII स्ट्रिंग को चुनौती दी गई है ।
स्ट्रिंग यांत्रिकी पर विवरण
तार का उपयोग कर सीमांकित किया जा सकता है '
, "
, '''
और """
। एक स्ट्रिंग तब समाप्त होती है जब आरंभिक सीमांकक को फिर से मारा जाता है।
यदि एक स्ट्रिंग शाब्दिक के साथ शुरू होता है '''
या """
इसे सीमांकक के रूप में सेवन किया जाता है। अन्यथा '
या "
उपयोग किया जाता है।
वर्णों को \
उनके सामने रखकर भाग सकते हैं। यह स्ट्रिंग में चरित्र को सम्मिलित करता है और इसके किसी विशेष अर्थ को समाप्त करता है। उदाहरण के लिए, 'a \' b'
बीच '
में बच जाता है और इस प्रकार शाब्दिक रूप से समाप्त नहीं होता है, और परिणामस्वरूप स्ट्रिंग है a ' b
।
वैकल्पिक रूप से, प्रारंभिक सीमांकक से पहले एक r
या R
डाला जा सकता है। यदि ऐसा किया जाता है, \
तो परिणाम में पलायन दिखाई देगा। उदाहरण के लिए, का r'a \' b'
मूल्यांकन करता है a \' b
। यही कारण है कि a ' b
इसे सीमांकित नहीं किया जा सकता है r'
।
बचने के लिए '''
या """
, किसी एक पात्र को भागने की जरूरत है।
इन शाब्दिकों को एक साथ समेटा जा सकता है, जो उनकी सामग्री को समेटता है।
नियम
- इनपुट गोल्फ के लिए स्ट्रिंग है। केवल मुद्रण योग्य ASCII, इसलिए कोई नया अंक या अन्य विशेष वर्ण नहीं।
- आउटपुट गॉल्फ़्ड स्ट्रिंग शाब्दिक है। यदि कई समाधान हैं, तो आउटपुट एक।
- चुनौती को सरल बनाने के लिए, गैर-
r
तार में इसके अलावा कोई भी बच नहीं जाता है\\
,\'
और\"
इसे अवैध माना जाता है। उन्हें आउटपुट में उपयोग नहीं किया जाना चाहिए, भले ही पायथन में'\m'
बराबर हो'\\m'
। यह विशेष एस्केप कोड को संसाधित करने की आवश्यकता को दूर करता है जैसे कि\n
। - गोल्फिंग पायथन स्ट्रिंग्स के लिए निर्मित भवन को बंद कर दिया गया है। अजगर की
repr
अनुमति है, क्योंकि यह वैसे भी भद्दा है। - मानक कोड-गोल्फ नियम लागू होते हैं।
उदाहरण इनपुट / आउटपुट
मैंने इन्हें सत्यापित करने की पूरी कोशिश की, लेकिन अगर गलतियाँ हों तो मुझे बताएं। यदि मामलों में कई वैध आउटपुट हैं, तो वे सभी इनपुट के नीचे सूचीबद्ध हैं।
test
-> 'test'
-> "test"
te\st
-> 'te\\st'
-> "te\\st"
-> r'te\st'
-> r"te\st"
te'st
-> "te'st"
te"st
-> 'te"st'
t"e"s't
-> 't"e"s\'t'
te\'st
-> "te\\'st"
-> r'te\'st'
-> r"te\'st"
te\'\"st
-> r'te\'\"st'
-> r"te\'\"st"
t"'e"'s"'t"'s"'t"'r"'i"'n"'g
-> """t"'e"'s"'t"'s"'t"'r"'i"'n"'g"""
-> '''t"'e"'s"'t"'s"'t"'r"'i"'n"'g'''
t"\e"\s"\t"\s'\t"\r"\i"\n"\g
-> r"""t"\e"\s"\t"\s'\t"\r"\i"\n"\g"""
-> r'''t"\e"\s"\t"\s'\t"\r"\i"\n"\g'''
t"""e"""s"""'''t'''s'''"""t"""r"""'''i'''n'''g
-> 't"""e"""s"""'"'''t'''s'''"'"""t"""r"""'"'''i'''n'''g"
t\"""e\"""s\"""'''t'''s'''\"""t\"""r\"""'''i'''n'''g
-> r"""t\"""e\"""s\"""'''t'''s'''\"""t\"""r\"""'''i'''n'''g"""
t"e"s"t"s"t"r"i"n"g"\'\'\'\'\'\'\'\
-> r't"e"s"t"s"t"r"i"n"g"\'\'\'\'\'\'\'''\\'
-> r't"e"s"t"s"t"r"i"n"g"\'\'\'\'\'\'\''"\\"
"""t"'e"'s"'t"'s"'t"'r"'i"'n"'g'''
-> """\"""t"'e"'s"'t"'s"'t"'r"'i"'n"'g'''"""
-> '''"""t"'e"'s"'t"'s"'t"'r"'i"'n"'g''\''''
इन अतिरिक्त मामलों के लिए एंडर्स कसेगोर को धन्यवाद :
\\'"\\'\
-> "\\\\'\"\\\\'\\"
''"""''"""''
-> '''''"""''"""'\''''
u'
और क्या b'
?
b
नियमित स्ट्रिंग्स के साथ भी संयुक्त नहीं किया जा सकता है, इसलिए मैंने उन्हें बस छोड़ दिया।
"
या'
->"""t"'e"'s"'t"'s"'t"'r"'i"'n"'g'''