जिमी को जूते की एक नई जोड़ी चाहिए!


13

जिमी पिछले सप्ताह इन सभी प्लेटफार्मों और रस्सियों के साथ व्यस्त था , और गरीब जिमी के पास पैर या पैर रखने के लिए भी नहीं है!


आपका काम कई जिस्म युक्त स्ट्रिंग लेना और उन्हें पैर और जूते देना है!

जिमी स्ट्रिंग के रूप में इनपुट प्राप्त करें

जिमी स्ट्रिंग => /o\ /o\ /o\

केवल /o\और

प्रत्येक जिमी को इनपुट में पैरों की एक जोड़ी दें जो इस तरह दिखता है:

 /o\
_/ \_

जिमी में इनपुट फ़्लोटिंग हेड जिमी स्ट्रिंग को पैरों की स्ट्रिंग से मोड़ें, जैसे:

// Input

       /o\   /o\          /o\

// Output

       /o\   /o\          /o\
      _/ \_ _/ \_        _/ \_

यदि 2 जिम्मी एक साथ पास हैं तो उन्हें कमरे बनाने के लिए आगे बढ़ना चाहिए, जिम्मी हमेशा दूसरे जिम्मी के कमरे बनाने के अधिकार की ओर बढ़ेंगे।

// Input

/o\/o\

// Output

 /o\  /o\
_/ \__/ \_

अन्य जिम्मी जो आगे दूर हैं उन्हें तब तक नहीं ले जाना चाहिए जब तक कि आवश्यक न हो

// Input

/o\/o\      /o\

// Output

 /o\  /o\   /o\
_/ \__/ \_ _/ \_

// Input

/o\/o\    /o\

// Output

 /o\  /o\  /o\
_/ \__/ \__/ \_

मानक नियम और कमियां लागू होती हैं,

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


सुझाया गया परीक्षण मामला: /o\<sp>/o\<sp><sp><sp><sp><sp><sp><sp><sp>/o\/o\मेरा वर्तमान कार्यान्वयन विफल हो जाता है क्योंकि यह अंतिम दो जिम्मी को दाईं ओर ले जाने की ओर ले जाता है। आपके सभी परीक्षण मामले सफल होते हैं, हालांकि।
केविन क्रूज़सेन

जवाबों:


3

अजगर 2 , 131 120 115 114 121 118 बाइट्स

o=1;W=[]
for g in map(len,input().split('/o\\')):W+=[' '*(g-o)];o=max(o-g,0)+2
for q in' /o\ ','_/ \_':print q.join(W)

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

4 बाइट्स thx to movatica ; बग फिक्स के लिए 10 बाइट्स खो गए।


1
o+=2-len(g)आपको एक बाइट बचाता है
जमैका


1
@movatica: एक बग था, लेकिन यह आपके संपादन :) द्वारा ऑफसेट किया गया था।
चास ब्राउन

3

रूबी -p , 77 75 बाइट्स

"जिमी को स्थानांतरित न करें यदि आवश्यक नहीं है" नियम चारों ओर काम करने के लिए काफी कठिन था, लेकिन मुझे लगता है कि इसने काफी अच्छा काम किया। पायथन की तुलना में कम (लिखने के समय), कम से कम।

पुनरावर्ती से -2 बाइट्स।

r=/(\\ ?|^)(\S+) ?/
gsub(r){"#$1 #$2"}while~r
puts$_
gsub(/ .o. ?/,'_/ \_')

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


क्या आप \S+इसके स्थान पर उपयोग कर सकते हैं \/\S*?
पुनरावर्ती



2

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

 F⌕Aθ/«J∧ι⊖ι¹WKK→P_/ \_M↗/o\

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

 

चारकोल के स्वचालित बाएं मार्जिन को हराने के लिए एक स्थान प्रिंट करें।

F⌕Aθ/«

बाईं बांहों के ऊपर लूप।

J∧ι⊖ι¹

वांछित बाएं पैर के स्थान पर कूदें। ध्यान दें कि चारकोल को ड्राइंग करने में कोई समस्या नहीं है (-1, 1), लेकिन प्रश्न यह अनुमति नहीं देता है, इसलिए हमें नकारात्मक स्थितियों में ड्राइंग से बचने के लिए ध्यान रखना होगा।

WKK→

किसी भी मौजूदा आउटपुट से आगे बढ़ें।

P_/ \_M↗/o\

पैरों को आउटपुट करें और फिर जिमी को आउटपुट करने के लिए आगे बढ़ें।


2

रेटिना ,40 37 बाइट्स

\+`(^|\S.)(/\S*) ?
$1 $2
 /o. ?
_/ \_

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

3 बाइट बंद करने के लिए वैल्यू इंक का धन्यवाद।


4
अपने नए जूते का आनंद लें!
Quinn

1
खैर, इन चुनौतियों का नाटक करने की कोशिश की गई जो कुछ समय के लिए मौजूद नहीं है। (उस जिमी से कोई संबंध नहीं।)
jimmy23013

मेरा मानना ​​है कि मेरे रूबी जवाब में मैंने जो पैटर्न मैच का उपयोग किया (\\ ?|^)(/\S*) ?है, वह आपकी पहली पंक्ति में से एक से छोटा है और उसी परिणाम को देना चाहिए (शायद; मैं रेटिना को बिल्कुल नहीं जानता)
मूल्य इंक


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