यहां सैंडबॉक्स पोस्ट ।
एक फ़ंक्शन या प्रोग्राम बनाएं जो एक स्ट्रिंग "स्प्रिंगलाइज़" करता है।
- इनपुट स्टिंग में एक स्ट्रिंग होगा, या निकटतम विकल्प होगा
- इनपुट में केवल मुद्रण योग्य ASCII और / या रिक्त स्थान होंगे
- आउटपुट स्टडआउट या निकटतम विकल्प के लिए होगा
- एक अनुगामी newlines और रिक्त स्थान स्वीकार्य हैं
कैसे एक स्ट्रिंग वसंत
- स्ट्रिंग को आवश्यकतानुसार ASCII स्प्रिंग कॉइल में रूपांतरित करें
- कॉइल को रिक्त स्थान के साथ रखें, निकटतम कुंडल तक
- कुंडल के चारों ओर वसंत का पालन करते हुए, वर्णों को पढ़ें
यह एक ASCII वसंत का तार है:
#
# ####
# #
# ####
#
जहां #स्ट्रिंग के पात्र हैं
यहाँ एक उदाहरण है:
abcdefghijklmnopqrstuvwxyz
हो जाता है
a
b cdef
g h
i jklm
n
o
p qrst
u v
w xyz.
.
जहां .दृश्यता के लिए स्थान बदलते हैं।
फिर, स्ट्रिंग छोरों के चारों ओर, वापस पढ़ा जाता है, ASCII वसंत नीचे की ओर निम्नलिखित, मार gऔर uदो बार:
1| a <-3
V b cdef
g h
4| i jklm
V n 2->
...
... दे रही है:
abgjklmhfedcginopuxyz vtsrquw (अनुगामी स्थान के साथ)
परीक्षण के मामलों
(अनुगामी स्थानों को उजागर करने के लिए जोड़े गए उद्धरण - कृपया IO के संदर्भ में ध्यान न दें)
I: "abcdefghijklmnopqrstuvwxyz"
O: "abgjklmhfedcginopuxyz vtsrquw "
I: "!@#"
O: "!@ # "
I: ""
O: ""
I: "12345 67890"
O: "12690 7 54368 "
I: " "
O: " "
ध्यान दें कि आउटपुट की लंबाई हमेशा 15 से अधिक होती है, स्प्रिंग कॉइल की लंबाई
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे कम उत्तर जीतता है।

मुख्य लूप बाएं से दाएं निष्पादित करना शुरू कर देता है, प्लेफील्ड के दाहिने हाथ की ओर लपेटता है। यह वह जगह है जहां हम स्टड से पहला चरित्र पढ़ते हैं, और यदि यह ईओएफ है, तो इसे समाप्त कर दें।
अगला खंड यह सुनिश्चित करता है कि कोई ईओएफ वर्ण सूत्र का उपयोग करके रिक्त स्थान में परिवर्तित हो गया है
चरित्र की एक प्रतिलिपि अस्थायी मेमोरी में सहेजी जाती है, और फिर वर्तमान सूचकांक का एक लुक लाइन चार (
) पर तालिका में प्रदर्शित किया जाता है ताकि यह निर्धारित किया जा सके कि चरित्र आउटपुट होना चाहिए या नहीं।
यदि चरित्र को आउटपुट की आवश्यकता होती है, तो हम बाईं शाखा लेते हैं। एक स्वैप यहां निष्पादित किया जाता है ताकि अगले स्वैप को रद्द किया जा सके, और फिर शाखा को सही करने के लिए एक शून्य धक्का दिया जाता है।
यदि चरित्र आउटपुट नहीं था, तो हम इसे इंडेक्स काउंटर के नीचे स्टैक स्वैप करते हैं (यह स्वैप है जो बाईं शाखा में रद्द हो जाता है)। और दोनों ही मामलों में हम चरित्र को वर्तमान इंडेक्स ऑफ़सेट पर मेमोरी में सहेजते हैं, इंडेक्स को बढ़ाते हैं, और यह जांचते हैं कि क्या यह 13 से अधिक है।
यदि नहीं, तो हम अगले चरित्र को स्टड से पढ़ते हैं और इनर लूप को दोहराते हैं।
यदि यह है, तो हम 14 वर्णों का एक सेट पूरा कर चुके हैं, 7 आउटपुट (