उस भून को ले लो और इसे चारों ओर मोड़ो


21

एपीएल के कई चेहरों का उत्सव

नीचे दी गई तालिका के कॉलम 1 या कॉलम 2 में उन लोगों के बीच एक स्ट्रिंग को देखते हुए, स्ट्रिंग के पड़ोसी को उसके दाईं ओर लौटाएं। दूसरे शब्दों में, यदि कॉलम 1 में एक स्ट्रिंग दी जाती है, तो उस पंक्ति पर कॉलम 2 के स्ट्रिंग को लौटाएं, और यदि स्तंभ 2 में एक स्ट्रिंग दी जाती है, तो उस पंक्ति पर कॉलम 3 के स्ट्रिंग को वापस करें।

कोडपॉइंट्स (अन्य के अलावा :) दूर दाईं ओर सूचीबद्ध हैं।

 कॉलम 1 कॉलम 2 कॉलम 3
:⊢  →   →  ⊣:   U + 22a2 U + 2361 U + 22a3
:▷ →   →  ◁:   U + 25b7 U + 2362 U + 25c1
:⋆ →   →  ⋆:   U + 22c6 U + 2363 U + 22c6
:∘ →   →  ∘:   + + 2218 U + 2364 U + 2218
:○ →   →  ○:   U + 25cb U + 2365 U + 25cb
:≀ →   →  ≀:   U + 2240 U + 2368 U + 2240
:∧ →   →  ∨:   U + 2227 U + 2369 U + 2228

किस्सा: इन प्रतीकों में से अधिकांश कुछ एपीएल बोली में मान्य या प्रस्तावित हैं (वे सभी लिंक हैं)।

अनुरोध के अनुसार, केवल प्रतीक:

:⊢ ⍡ ⊣:
:▷ ⍢ ◁:
:⋆ ⍣ ⋆:
:∘ ⍤ ∘:
:○ ⍥ ○:
:≀ ⍨ ≀:
:∧ ⍩ ∨:

जवाबों:


8

जावास्क्रिप्ट (ईएस 6), 108 107 बाइट्स

s=>(S="⊢▷⋆∘○≀∧⍡⍢⍣⍤⍥⍨⍩⊣◁⋆∘○≀∨")[S.search(s[1]||s)+7]+(s[1]?'':':')

डेमो



5

सी # (.NET कोर) , 148 134 बाइट्स

s=>{var c="⊢⍡⊣▷⍢◁⋆⍣⋆∘⍤∘○⍥○≀⍨≀∧⍩∨";return c[c.IndexOf(s[s.Length-1])+1]+(s.Length<2?":":"");}

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

  • 14 बाइट्स थोड़े से गोल्फ खेलने के बाद बच गईं।

पूछना चाहता था, क्या यह स्पष्ट मचान (वर्ग कार्यक्रम, स्थैतिक शून्य मुख्य) को छोड़ना है जो आपको बाइट काउंट से चाहिए? मैं आमतौर पर जेवीएम भाषाओं का उपयोग करता हूं और निश्चित रूप से यह अच्छा होगा यदि मैं कक्षा / मुख्य फ़ंक्शन की घोषणा को छोड़ सकता हूं और बस अपने कोड के मांस को गिन सकता हूं, लेकिन मुझे यकीन नहीं है कि अगर यह मामला है।
मतज

1
@ माटेज मानक कोड गोल्फ नियम एक फ़ंक्शन / लैम्ब्डा या एक पूर्ण कार्यक्रम प्रस्तुत करने की अनुमति देता है।
एडम मार्टिन

3

पायथन 3 , 140 137 116 बाइट्स

lambda n,x=":⊢⍡⊣:▷⍢◁:⋆⍣⋆:∘⍤∘:○⍥○:≀⍨≀:∧⍩∨:":x[x.find(n)+len(n):x.find(n)+3]

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


कॉलम 1 इनपुट के लिए
कैलकुलेटर

अजीब। यह काम नहीं किया जब मैंने इसे पहले कोशिश की थी। वैसे भी, ले जाने पर।
कैलक्यूलेटरफ्लीन

आपके अंतिम चरित्र ने अपनी :आँखें खो दीं।
xnor

3

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

“¤'aẎṚl’b4ạ37ż“ɱaɲṢbḊİcİðdðṖeṖ@h@'i(‘ḅ⁹Ọɓi@€Ṁ‘ị;⁸LḂx@”:¤

एक पूरा कार्यक्रम।

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

नोट: ( ɱaɲ!) जबकि गैर- :अध्यादेशों के लिए कुछ पैटर्न है (मध्य स्तंभ लगभग लगातार, कई बाएं और अधिकार समान हैं - केवल एक से दो और दस से एक बंद) यह सिर्फ इस तरह के लिए काफी पर्याप्त नहीं लगता है किसी भी बाइट की अनुमति देने के लिए छोटा डेटा सेट इस पर बचाता है।

पहला तेरह बाइट्स भी हो सकता है “¡ÐɼU¹’ṃ“"%#‘

कैसे?

“¤'aẎṚl’b4ạ37ż“ ... ‘ḅ⁹Ọɓi@€Ṁ‘ị;⁸LḂx@”:¤ - Main link: list of characters, frown
“¤'aẎṚl’                                 - base 250 number = 4064044420859
        b4                               - to base 4 = [3, 2, 3, 0, 2, 0, 3, 2, 3, 3, 2, 3, 0, 2, 0, 3, 2, 3, 3, 2, 3]
          ạ37                            - absolute diffence with 37 = [34, 35, 34, 37, 35, 37, 34, 35, 34, 34, 35, 34, 37, 35, 37, 34, 35, 34, 34, 35, 34]
              “ ... ‘                    - code page indexes = [162, 97, 163, 183, 98, 193, 198, 99, 198, 24, 100, 24, 203, 101, 203, 64, 104, 64, 39, 105, 40]
             ż                           - zip together = [[34, 162], [35, 97], [34, 163], [37, 183], [35, 98], [37, 193], [34, 198], [35, 99], [34, 198], [34, 24], [35, 100], [34, 24], [37, 203], [35, 101], [37, 203], [34, 64], [35, 104], [34, 64], [34, 39], [35, 105], [34, 40]]
                      ⁹                  - literal 256
                     ḅ                   - convert from base = [8866, 9057, 8867, 9655, 9058, 9665, 8902, 9059, 8902, 8728, 9060, 8728, 9675, 9061, 9675, 8768, 9064, 8768, 8743, 9065, 8744]
                       Ọ                 - convert to characters = "⊢⍡⊣▷⍢◁⋆⍣⋆∘⍤∘○⍥○≀⍨≀∧⍩∨"
                        ɓ                - dyadic chain separation, call that smiles
                         i@€             - first index of €ach frown character in smiles
                            Ṁ            - maximum (any ':' was not found so yielded 0)
                             ‘           - increment
                              ị          - index into smiles
                                       ¤ - nilad followed by link(s) as a nilad
                                ⁸        -   chain's left argument, frown
                                 L       -   length
                                  Ḃ      -   mod 2
                                     ”:  -   literal ':'
                                   x@    -   repeat with swapped @rguments
                               ;         - concatenate
                                         - implicit print

वहीं कुछ गंभीर जेली है। ओह।
अदम

मैलेट के साथ अध्यादेश "... आप मुस्कुराते हैं वहाँ फिट!"
जोनाथन एलन

2

PHP , 147 बाइट्स

<?=($f=array_flip($y=str_split(⍣⋆⍤∘⍥○⍨≀∧⍩∨⊢⍡⊣▷⍢◁,3))[trim($argn,":")])>7?$y[$f+1].":"[$f%3>1]:$y[$f^1].":"[$f&1];

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


+1 के लिए बस array_flip!
आदम

@ Adám array_flipएक या दो बाइट्स विकल्प के रूप में छोटा है array_searchऔर इस मामले में मल्टीबाइट की कीमत बहुत अधिक बाइट्स है। C #
Jörg Hülsermann

1
प्रतीकों स्ट्रिंग से उद्धरणों को हटाने के साथ ही, यह एक ही मूल्य के साथ अपरिभाषित स्थिर माना जाता है
Einacio

1

05AB1E , 58 56 54 बाइट्स

• î]D£Èтн»“¿āp÷ŒRÃÙŽ^мηWX·ć•3ô8728+çJ3ô':ý':.øI¡`3Ig-£

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

व्याख्या

• î]D£Èтн»“¿āp÷ŒRÃÙŽ^мηWX·ć•  # push a 63-digit base-255 compressed number
3ô                            # split in pieces of 3
  8728+                       # add 8728 to each
       çJ                     # convert to a string with the corresponding code points
         3ô                   # split in pieces of 3
           ':ý                # merge on ":"
              ':.ø            # surround with ":"
                  I¡          # split on input
                    `         # push as separate to stack, the tail on top
                     3Ig-£    # take the first 3-len(input) characters

उपरोक्त विधि सीमा में किसी भी संख्या के साथ काम करना चाहिए [8676 ... 8728], इसलिए अगर मुझे वहां एक संख्या मिल सकती है जो 3 बाइट्स में उत्पन्न हो सकती है तो मैं वर्तमान समाधान पर एक बाइट बचा सकता हूं।

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