Gimbap कटर बनाओ


23

गिंबप (imb) कोरियाई भोजन है, कुछ हद तक सुशी रोल की तरह दिखता है।

यहाँ कोरियाई इमोटिकॉन Gimbap का प्रतिनिधित्व करता है: @))))))))))

आपकी खोज ASCII Gimbap कटर है।

नियम

इनपुट केवल @और के साथ बनाया गया स्ट्रिंग है )

आउटपुट हर वैध गिंबप के साथ कटौती करता है ), और फिर @उनके बीच जोड़ें । तो उदाहरण के @))लिए @) @)

मान्य गिंबाप@ किसी भी राशि से शुरू होता है और उसके बाद होता है )

यदि कोई मान्य Gimbap नहीं है, तो आउटपुट रिक्त है।

इनपुट और आउटपुट

Input | Output
@))))) | @) @) @) @) @)
@))))))) | @) @) @) @) @) @) @)
@))@))) | @) @) @) @) @)
@) | @)
)) | 
@ | 
@@)@@@))) | @) @) @) @)
@)@)@)) | @) @) @) @)
@@@)) | @) @)
))@) | @)

जीतने की स्थिति

यह , इसलिए सबसे छोटा कोड जीतता है।

से सैंडबॉक्स


2
क्या नियम " इनपुट के @) हर एक के लिए उत्पादन की एक प्रति के बराबर है )जो उन लोगों को किसी से पहले नहीं गिन सकते हैं @? हमारे उत्पादन में एक "@) @) "
ट्रैश

यह है। और आउटपुट में एक अनुगामी स्थान शामिल हो सकता है।
लेगेंदुस्ट

क्या हमें स्पेस सीमांकित स्ट्रिंग का उत्पादन करना है या हम स्लाइस की एक सरणी का उत्पादन कर सकते हैं? इसके अलावा, क्या हम उन 2 पात्रों तक सीमित हैं या हम अपने चयन के किसी भी 2 वर्णों का उपयोग कर सकते हैं?
शैगी

मेरा पहली बार शीर्षक पढ़ने की कोशिश कर रहा है, "जिम्प-बैट अव्यवस्था? क्या?"
ड्रेको 18s

जवाबों:





5

जावास्क्रिप्ट (Node.js) , 48 47 बाइट्स

x=>"@) ".repeat(x.split(/(?<=@.*)\)/).length-1)

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

जावास्क्रिप्ट (Node.js) , 53 49 बाइट्स

x=>[...x].map(y=>y<"0"?m+=s&&"@) ":s=1,s=m="")&&m

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

जावास्क्रिप्ट (Node.js) , 60 बाइट्स

x=>x.replace(/(@?)(\)*)/g,(_,a,b)=>a&&b.replace(/./g,"@) "))

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








2

बैच, 58 बाइट्स

@set s=%1@
@set s=%s:*@=(%
@set s=%s:@=%
@echo%s:)=@) %

कमांड-लाइन पैरामीटर के रूप में इनपुट लेता है। स्पष्टीकरण:

@set s=%1@

@यदि कोई इनपुट शामिल नहीं है तो प्रत्यय ।

@set s=%s:*@=(%

पहले तक हटाएं @, इसे बदलने के लिए यह (सुनिश्चित करने के लिए कि स्ट्रिंग खाली नहीं है (क्योंकि %:%खाली स्ट्रिंग पर काम नहीं करता है)। (यह भी बनाता है echoकाम करता है, तो स्ट्रिंग के बाकी खाली है।

@set s=%s:@=%

किसी भी शेष को हटा दें @

@echo%s:)=@) %

किसी भी शेष का विस्तार करें )


2

05AB1E (विरासत) , 10 बाइट्स

Z¡¦JS'@ìðý

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

यह बग मुझे विरासत संस्करण का उपयोग करने के लिए मजबूर करता है। यह वर्तमान संस्करण 05AB1E (11 बाइट्स) के लिए कोड है:

'@¡¦JS'@ìðý

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

मेरे जैली जवाब का पोर्ट।


2

जाप v2.0a0 -S, 15 बाइट्स

r/^\)+|@/ ¬mi'@

कोशिश करो

r/^\)+|@/ ¬mi'@     :Implicit input of string
r                   :Remove
 /^\)+|@/           :  "@"s and leading ")"s
          ¬         :Split
           m        :Map
            i'@     :  Prepend "@"
                    :Implicit output, joined with spaces

विकल्प

e/^\)/ è\) Æ"@)

कोशिश करो

e/^\)/ è\) Æ"@)     :Implicit input of string
e                   :Recursively remove
 /^\)/              :  Leading ")"
       è\)          :Count remaining ")"s
           Æ        :Map the range [0,Count)
            "@)     :  Literal string
                    :Implicit output, joined with spaces





1

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

$_= ~/@/&&'@) '*$'.count(?))

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

व्याख्या

                                # -p gets a line of STDIN
$_=                             # Set output to
    ~/@/                        # Find first '@' in input
                                # nil (falsey) if not found
        &&                      # If found, set output to
          '@) '                 # Sliced gimbap
               *                # Repeat
                $'              # In the string after the first '@',
                  .count(?))    # ... count the number of ')'
                                # -p outputs the contents of $_
                                # nil outputs as a blank string


1

sed , 30 बाइट्स

s/)\?@\()\?\)/\1/g; s/)/@) /gp

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


PPCG में आपका स्वागत है। दुर्भाग्य से, आपका कोड अग्रणी )एस और कई को @ठीक से संभाल नहीं सकता है। और, इसे ऑनलाइन कैसे आज़माएं ?
LegenDUST

1
जैसा कि आप 5 वें या अंतिम उदाहरण में देख सकते हैं, अग्रणी )एस को नजरअंदाज करना होगा।
लेगेंदुस्ट

@LegenDUST, आप सही हैं! यह इतना आसान नहीं था। मुझे लगता है कि काम करने का संस्करण बहुत बदसूरत है
विसेंटा बोलिया

28 वर्ण: s / ^) * //; s / [^)] // g; s / / / @) / gp
jnfnt


1

अजगर , 20 बाइट्स

*?}\@z/>zxz\@\)0"@) 

इसे ऑनलाइन आज़माएं! ध्यान दें कि कार्यक्रम के अंत में एक अनुगामी स्थान है। यह एक (या बल्कि, शुरू किया गया) पायथन 2 उत्तर का एक सीधा अनुवाद है (हालांकि लेस्ट्रिप हिस्सा आश्चर्यजनक रूप से कठिन था)।

स्पष्टीकरण:

*            # repeat string
  ?          # repeat count: ternary
    }\@z     # condition: check whether input contains @
    /        # if condition is true: count occurrences of one string in another
      >      # array slice: all elements of array (or string) from a specific index and upwards
        z    # the thing to slice (input)
        xz\@ # the index first occurrence of \@ in z
      \)     # string to count occurrences of (\x is shorthand for "x")
    0        # value when ternary condition is false
  "@) "      # the string to be repeated (automatically terminated by end-of-line)

1

krrp , 63 बाइट्स

^":\L,^*':?#?E'E!-@1#!r'?=#!f'$64.-?*L$64.L$41.L$32.-@0#!r'.0".

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


व्याख्या

^":                   ~ take the string as a parameter named `"`
 \L                   ~ import the list module
 ,^*':                ~ apply a binary function
  ?#?E'               ~  if the string is empty,
   E                  ~   return the empty string; else
   !-@1#!r'           ~   define `-` as the cut Gimbap
   ?=#!f'$64.         ~    if an at sign is seen,
    -                 ~    return the cut Gimbap; else
    ?*                ~    if an at sign has been seen,
     L$64.L$41.L$32.- ~     return a Gimbap piece together
                      ~     with freshly cut Gimbap; else
     @0#!r'           ~     proceed to cut
 .0".                 ~ to zero and the above taken string

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


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