जिमी को आपकी मदद चाहिए!


17

ऐसा लगता है कि हाल ही में, वहाँ बहुत से एक जिमी उनकी मौत के लिए गिर रहे हैं, जैसा कि यहाँ देखा जा सकता है , और यहाँ जहाँ आपको यह निर्धारित करने के लिए कहा गया था कि क्या जिमी गिरेंगे। यह समय है कि हम इस पागलपन पर विराम लगाएं और जिमी को बचाने की कोशिश करें।

जिमी तीन शरीर के अंगों है /, oऔर \इस तरह की व्यवस्था की

/o\

प्लेटफार्मों के साथ प्रतिनिधित्व कर रहे हैं -। जिमी उनके मंच से गिर जाएगा यदि उनके पास दो या अधिक शरीर के अंग हैं जो सीधे एक मंच से ऊपर नहीं हैं।

कुछ उदाहरण:

   /o\
- -------

जिमी अपने शरीर के सभी अंगों के ऊपर होने से संतुलन बनाएगा -

   /o\
    ------   ---

शरीर के दो हिस्से -s से ऊपर होने के कारण जिमी संतुलित रहेगा ।

 /o\
-- ----  --

भले ही वे दो प्लेटफार्मों के बीच विभाजित हैं, जिमी संतुलन बनाएंगे

  /o\
   -

जिमी संतुलित नहीं होगा क्योंकि शरीर के दो हिस्से एक मंच से ऊपर नहीं हैं।


चूंकि मेरा प्लेटफ़ॉर्म सप्लाई कम चल रहा है, मेरे पास केवल 5 की लंबाई के साथ प्लेटफ़ॉर्म हैं, और यह महत्वपूर्ण है कि हम जितना संभव हो उतना कम उपयोग करें।

आपका काम जिम्मीज़ का एक इनपुट लेना है और प्लेटफ़ॉर्म की एक स्ट्रिंग को आउटपुट करना है जो इनपुट में सभी जिमीज़ को बचाएगा। आपके आउटपुट को संभव के रूप में कुछ प्लेटफार्मों का उपयोग करना चाहिए, लेकिन प्रत्येक प्लेटफ़ॉर्म 5 -चौड़ा होना चाहिए ।

ध्यान दें कि प्लेटफ़ॉर्म का नियम 5 -चौड़ा है, इसका मतलब है कि प्रत्येक प्लेटफ़ॉर्म के बीच एक स्थान होना चाहिए। ----------आउटपुट में मान्य नहीं है क्योंकि इसे लंबाई 10 का प्लेटफ़ॉर्म और लंबाई 5 के दो प्लेटफ़ॉर्म नहीं माना जाएगा।

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

/o\  /o\/o\    // input
----- -----    // output
/o\           /o\
-----       -----
/o\           /o\      // same input as above
-----          -----   // this is also valid output
    /o\ /o\
     -----

मानक नियम लागू होते हैं।

यह कोड-गोल्फ है, सबसे छोटी उत्तर जीत हो सकती है!


2
@Veskah के रूप में लंबे समय के रूप में सभी संभव प्लेटफार्मों का उपयोग कर सहेजा जाता है, स्थिति कोई फर्क नहीं पड़ता, इसलिए प्रत्येक इनपुट के लिए कई वैध आउटपुट होंगे। इस बात की कोई शर्त नहीं है कि इनपुट में कितने जिमीज़ होंगे, एक खाली स्ट्रिंग एक वैध इनपुट होगा।
क्विन

3
टेस्ट केस 4 एक डरावने चेहरे की तरह दिखता है
एक्सपायर्ड डेटा

2
फॉलो-अप: प्लेटफार्मों पर जितने संभव हो उतने जिस्मों को इस तरह रखें कि वे गिरें नहीं।
वैल कहते हैं

2
@val जो वास्तव में जुड़े हुए सवालों में से एक है - मैंने उसके बाद एक: पी
क्विन

7
मैं भविष्य में इतने सारे जिमी फॉलो-अप देख सकता हूं।
कनेक्टीचार्जर

जवाबों:


2

चारकोल , 17 15 बाइट्स

W‹ⅈLθ«×⁵№o\§θⅈ→

इसे ऑनलाइन आज़माएं!लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

W‹ⅈLθ«

कर्सर की स्थिति इनपुट की लंबाई से कम होने पर दोहराएं।

×⁵№o\§θⅈ

यदि इनपुट में उस स्थिति का वर्ण 5 oया एक \प्रिंट 5 है-

अगले वर्ण पर जाएं, इस प्रकार प्लेटफार्मों के बीच कम से कम एक स्थान की गारंटी।

पिछला 17-बाइट समाधान IMHO अधिक "चारकोल-वाई" है।

θ⸿Fθ«×⁵¬№ /⊟KD²↑→

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। आउटपुट में इनपुट शामिल है, इस प्रकार समाधान की शुद्धता प्रदर्शित करता है। स्पष्टीकरण:

θ⸿

इनपुट प्रिंट करें और अगली पंक्ति की शुरुआत में जाएं।

Fθ«

यह सुनिश्चित करने के लिए कि जिमी छूट न जाए, इनपुट के हर चरित्र पर लूप करें।

×⁵¬№ /⊟KD²↑

कर्सर के ऊपर के वर्ण को देखें। यदि कोई नहीं है, या यदि यह स्थान है या /, तो कुछ भी न करें, अन्यथा 5 -एस प्रिंट करें ।

अगले वर्ण पर जाएं, इस प्रकार प्लेटफार्मों के बीच कम से कम एक स्थान की गारंटी।


7

पायथन 2 , 70 67 बाइट्स

lambda s:S('/',' ',S("\S.{5}","----- ",s+' '*5))
import re;S=re.sub

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

केविन क्रूज़सेन और नील को -3 बाइट्स धन्यवाद

नहीं सबसे सुंदर, यकीन नहीं कैसे बेहतर करने के लिए उन बचे हुए slashes संभाल ...

दुर्भाग्य से, हम प्रत्येक प्लेटफ़ॉर्म के दोनों सिरों को एक re.subकॉल का उपयोग करके रिक्त स्थान से नहीं बदल सकते , क्योंकि 2 प्लेटफ़ॉर्म एक स्थान से अलग होने के मामले में, उनके बीच के अंतर को एक से अधिक बार मिलान नहीं किया जा सकता है। दिखावे / दिखावे के दावे से मदद नहीं मिलेगी, क्योंकि जो कुछ उन मेलों के भीतर मेल खाता है, उन्हें प्रतिस्थापित नहीं किया जाता है।

एकल re.subसंदर्भ का उपयोग करना :

पायथन 3.8 (पूर्व-रिलीज़) , 78 बाइट्स

lambda s:[s:=re.sub(".[^/ -].{5}"," ----- ",s+"  ",1)for c in s][-1]
import re

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


पहले /और उसके बाद 69 बाइट्स की जगह [^ ]
केविन क्रूज़सेन

@ मेरे रेटिना जवाब पर नील के सुझाए गए गोल्फ भी आपके लिए काम करते हैं: 67 बाइट्स
केविन क्रूजेसेन


2

पायथन 3 , 158 164 160 बाइट्स

a=input();r=""
for i,c in enumerate(a):
 try:r[i]
 except:
  if c in"/o":
   r+=(a[i+5<len(a)and i+5or len(a)-1]=="o"and" "or"")+"----- "
  else:r+=" "
print(r)

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

यह मेरा पहला कोड गोल्फ उत्तर है, और मुझे खुशी है कि यह जिमी प्रश्न पर है!

स्पष्टीकरण:

  • a=input();r="": इनपुट में लें और एक नया स्ट्रिंग इनिशियलाइज़ करें r

  • for i,c in enumerate(a):: इनपुट पर गणना करें।

  • try:r[i] ... except:: देखें कि क्या r[i]मौजूद है - यदि नहीं, तो exceptब्लॉक को प्रोसेस करें ।

  • if c in"/o":: जांचें कि क्या वर्तमान चरित्र जिमी के पहले दो शरीर के अंगों में है।

  • r+=(a[i+5<len(a)and i+5or len(a)-1]=="o"and" "or"")+"----- ": यदि हां, तो एक नया खंड जोड़ें। हमारे नए खंड से पहले एक स्थान जोड़ें यदि एक और जिमी सिर पांच वर्णों में मौजूद है।

  • else:r+=" ": अन्यथा, बस एक स्थान जोड़ें।

  • print(r): हमारा अंतिम परिणाम प्रिंट करें।


बहुत करीब है, लेकिन मुझे लगता है कि यह वास्तव में सभी परीक्षण मामलों के लिए काम नहीं करता है। इसे यथासंभव कुछ प्लेटफार्मों का उपयोग करना चाहिए और आपका अंतिम उदाहरण 2 का उपयोग करता है जब इसे 1 के साथ किया जा सकता है
क्विन

@ क्विन शूट। इर, गैर-प्रतिस्पर्धा जब तक मैं ठीक नहीं करता।
संयोजक जूल 5'19

@connectyourcharger "गैर-प्रतिस्पर्धा" एक अमान्य समाधान को मान्य नहीं करता है। यदि आप इसे कुछ समय के लिए ठीक नहीं करने जा रहे हैं (जैसे अगले कुछ मिनट) तो मैं इसे हटाने की सलाह देता हूं।
आउटगोल्फ जूल

@ मुझे अब यह तय हो गया।
संयोजक जूल

@connectyourcharger अच्छा लगा!
क्विन

2

रेटिना , 23 21 बाइट्स

/

$
5* 
\S.{5}
5*- 

-2 बाइट्स @Neil की बदौलत

दूसरी, चौथी और छठी पंक्तियों पर एक एकल अनुगामी स्थान समाहित करता है।

पोर्ट ऑफ @negativeSeven के पायथन 2 का उत्तर है , इसलिए उसे सुनिश्चित करें!

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

स्पष्टीकरण:

सभी को इसके "/"साथ बदलें " ":

/
 

5 अनुगामी स्थान संलग्न करें:

$
5* 

आकार छह के सभी सबस्ट्रिंग को बदलें जो एक स्थान से शुरू नहीं होता है "----- ":

\S.{5}
5*- 

के \Sबजाय आप का उपयोग कर सकते हैं [^ ]?
नील

@ नील आह, बिल्कुल। धन्यवाद!
केविन क्रूज़सेन

1

जेली , 35 बाइट्स

;3x5¤;0;ṛṫ6ɗ
;⁶x5¤e€⁾o\œṡ1ç/$ÐLị⁾- 

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

एक मोनडिक लिंक जो इनपुट को एक स्ट्रिंग के रूप में लेता है और प्लेटफार्मों के साथ जेली स्ट्रिंग लौटाता है।

@ नेगाटिवेंसवेन के उत्तर से प्रेरणा लेता है ।


1

05AB1E , 25 24 बाइट्स

ð5׫'/ð:DŒ6ùʒнðÊ}'-5×ð«:

पोर्ट ऑफ @negativeSeven के पायथन 2 का उत्तर है , इसलिए उसे उभारना सुनिश्चित करें!

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

ð5׫                      # Append 5 trailing spaces to the (implicit) input-string
    '/ð:                 '# Replace all "/" with a space
        D                 # Duplicate the string
         Œ                # Get all substrings of this
          6ù              # Only leave those of length 6
            ʒ   }         # Filter it further by:
             нðÊ          #  Only keep those which do NOT start with a space
                 '-5×ð«  '# Push a string of 5 "-" appended with a space: "----- "
                       :  # Replace in the initially duplicated string all substrings 
                          # remaining in the list with this "---- "

1

जाप , 23 22 बाइट्स

अरनॉल्ट के जेएस समाधान का एक बंदरगाह जिसे मैं पूरी तरह से परीक्षण करने के लिए बहुत थक गया हूं। यदि यह अमान्य है, तो क्या हीरा नष्ट हो सकता है?

+L² £=U´?U:X>M©5)?'-:S

कोशिश करो

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