त्रिकोणीय वर्णमाला के स्लाइस


15

एक इनपुट संख्या को देखते हुए nसे 1करने के लिए 26(या 0करने के लिए 25), उत्पादन वर्णमाला पढ़ने बाएँ-से-सही करने के लिए और उस के साथ, पत्र इसी सहित a=1, b=2, c=3, ...। मोड़ यह है कि अक्षरों को वर्णमाला में उनकी स्थिति के अनुरूप लंबवत दोहराया जाना चाहिए। विषम संख्याओं (जब 1-indexed) को क्षैतिज रेखा के पार संतुलित किया जाना चाहिए, जबकि संख्याओं को ऊपर या नीचे के पक्ष के बीच वैकल्पिक होना चाहिए (आप चुन सकते हैं कि किस दिशा में जाना है)। यदि आप 0-इंडेक्सिंग कर रहे हैं, तो अजीब / पिछले वाक्य में भी स्वैप करें।

दूसरे तरीके से कहा जाता है - यदि किसी अक्षर ?का वर्णमाला मान है #, तो #आउटपुट में उस पत्र की प्रतियां होनी चाहिए , वे सभी #कॉलम में। इन अक्षरों को क्षैतिज रेखा के ऊपर और नीचे समान रूप से संतुलित होना चाहिए जो कि है a। यदि अक्षरों को समान रूप से संतुलित नहीं किया जा सकता है, तो वैकल्पिक रूप से उस पंक्ति के ऊपर और नीचे "अतिरिक्त" अक्षर होने चाहिए।

यहां पहले छह आउटपुट ( n = 1,2,3,4,5,6, 1-इंडेक्स किए गए हैं, नीचे से पहले वैकल्पिक करने के लिए चुनते हैं), न्यूलाइन द्वारा अलग किए गए हैं, ताकि आप पैटर्न देख सकें। पैटर्न के साथ शुरू करने वाली टिप्पणियाँ #

a         # On a line by itself

ab
 b        # The "extra" letter is below the horizontal

  c
abc       # The 'c' splits evenly
 bc

   d      # Because the 'b' was below, the extra 'd' must be above
  cd
abcd
 bcd


   de
  cde
abcde     # The 'e' balances
 bcde
    e

   def
  cdef
abcdef
 bcdef
    ef
     f    # Since the 'd' was above, the extra 'f' must be below

(कुछ को छोड़ें n=26)

                       xyz
                      wxyz
                   tuvwxyz
                  stuvwxyz
               pqrstuvwxyz
              opqrstuvwxyz
           lmnopqrstuvwxyz
          klmnopqrstuvwxyz
       hijklmnopqrstuvwxyz
      ghijklmnopqrstuvwxyz
   defghijklmnopqrstuvwxyz
  cdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
 bcdefghijklmnopqrstuvwxyz
    efghijklmnopqrstuvwxyz
     fghijklmnopqrstuvwxyz
        ijklmnopqrstuvwxyz
         jklmnopqrstuvwxyz
            mnopqrstuvwxyz
             nopqrstuvwxyz
                qrstuvwxyz
                 rstuvwxyz
                    uvwxyz
                     vwxyz
                        yz
                         z

नियम

  • आप अपरकेस या लोअरकेस में आउटपुट का चयन कर सकते हैं, लेकिन यह सुसंगत होना चाहिए।
  • वैकल्पिक अनुगमन न्यूलाइन को छोड़कर आउटपुट में असंगत व्हाट्सएप नहीं हो सकता है।
  • या तो एक पूर्ण कार्यक्रम या एक समारोह स्वीकार्य हैं।
  • इनपुट नंबर को किसी भी उपयुक्त प्रारूप के माध्यम से लिया जा सकता है ।
  • मानक खामियों को मना किया जाता है।
  • यह इसलिए सभी सामान्य गोल्फिंग नियम लागू होते हैं, और सबसे छोटा कोड (बाइट्स में) जीतता है।

जवाबों:



8

पायथन 2, 101 99 बाइट्स

r=range(input())
for x in sorted(r,key=lambda x:x*-(x&2)):print bytearray([97+i,32][i<x]for i in r)

xsot ने दो बाइट्स को x*-(x&2)सॉर्टिंग कुंजी के रूप में महसूस करके बचाया - परिणामस्वरूप छवि का निचला भाग sortedस्थिर प्रकार की गारंटी देने के कारण अप्रभावित रहता है ।


क्या आप -रिवर्स ऑर्डर में लाइनों को आउटपुट करने के लिए ड्रॉप नहीं कर सकते हैं , जो मुझे लगता है कि स्वीकार्य है?
नील

मुझे लगता है कि x*-(x&2)काम करता है।
xsot



2

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

n=>[...Array(n).keys()].sort((a,b)=>a*~-(a&2)-b*~-(b&2)).map(i=>` `.repeat(i)+`abcdefghijklmnopqrstuvwxyz`.slice(i,n)).join`\n`

@ लिन की सॉर्ट ट्रिक का उपयोग करता है। पूरी वर्णमाला लिखना गणना करने की तुलना में दो बाइट सस्ता था। संपादित करें: @ETHproductions के लिए 1 बाइट धन्यवाद सहेजा गया क्योंकि मैं यह ध्यान रखना भूल गया कि \nवास्तव में शाब्दिक न्यूलाइन वर्ण का प्रतिनिधित्व करता है। (जब रेखा इतनी लंबी हो तो मुझे अपने उत्तर में शाब्दिक नई पंक्तियाँ डालना पसंद नहीं है।)


वर्णमाला पर दो बाइट्स सहेजें: btoa`...` जहां ...के परिणाम के साथ बदल दिया गया है atob`abcdefghijklmnopqrstuvwxyzz` । (इसके अलावा, आप बदल सकते हैं\n एक शाब्दिक न्यूलाइन के साथ ।)
ETHproductions

@ETHproductions मैं इसे लेता हूं जो UTF के बजाय ISO एन्कोडिंग का उपयोग करेगा?
नील

हाँ यह होगा। क्या हमें JS-8 में UTF-8 के बजाय ISO-8859-1 का उपयोग करने की अनुमति है?
18

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