एक वर्णमाला पिरामिड बनाएँ


19

आज हम अक्षरों से एक पिरामिड बनाने जा रहे हैं! यहां पहले 5 अक्षरों के लिए एक उदाहरण पत्र पिरामिड दिया गया है:

  1. पहले 5 अक्षरों को बीच के स्थान के साथ लिखें, पहले आरोही और फिर अवरोही।

    A B C D E D C B A
    
  2. ऊपर की लाइन पर पहले चार अक्षरों के लिए एक ही काम करें, लेकिन दो अतिरिक्त प्रमुख स्थानों के साथ:

      A B C D C B A
    A B C D E D C B A
    
  3. एक ही चरण को तब तक दोहराएं जब तक कि अंतिम रेखा सिर्फ 'ए' न हो।

            A 
          A B A
        A B C B A
      A B C D C B A
    A B C D E D C B A
    
  4. ऊपर जाने के बजाय दो और तीन चरणों को दोहराएं:

            A 
          A B A
        A B C B A
      A B C D C B A
    A B C D E D C B A
      A B C D C B A
        A B C B A
          A B A
            A 
    

यह एक ही पैटर्न 26 अक्षरों तक बढ़ाया जा सकता है। आपकी चुनौती एक प्रोग्राम या फ़ंक्शन लिखना है जो एक पूर्णांक को इनपुट के रूप में लेता है, और संबंधित पत्र पिरामिड का उत्पादन करता है। आप अपरकेस या लोअरकेस वर्णों का उपयोग करना चुन सकते हैं। आप हमेशा मान सकते हैं कि इनपुट एक पूर्णांक होगा [1, 26], और आउटपुट 2d स्ट्रिंग के लिए कोई भी उचित प्रारूप हो सकता है। उदाहरण के लिए, इसमें newlines के साथ एक स्ट्रिंग, वर्णों की एक सरणी, एक फ़ाइल पर मुद्रण, आदि। प्रत्येक पंक्ति में इस पर अनुगामी स्थान हो सकते हैं, और आप वैकल्पिक रूप से एक अनुगामी newline आउटपुट कर सकते हैं।

यहाँ कुछ उदाहरण इनपुट / आउटपुट दिए गए हैं:

1:

A

2:

  A
A B A
  A

3:

    A
  A B A
A B C B A
  A B A
    A

5:
        A 
      A B A
    A B C B A
  A B C D C B A
A B C D E D C B A
  A B C D C B A
    A B C B A
      A B A
        A 

13:


                        A
                      A B A
                    A B C B A
                  A B C D C B A
                A B C D E D C B A
              A B C D E F E D C B A
            A B C D E F G F E D C B A
          A B C D E F G H G F E D C B A
        A B C D E F G H I H G F E D C B A
      A B C D E F G H I J I H G F E D C B A
    A B C D E F G H I J K J I H G F E D C B A
  A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
  A B C D E F G H I J K L K J I H G F E D C B A
    A B C D E F G H I J K J I H G F E D C B A
      A B C D E F G H I J I H G F E D C B A
        A B C D E F G H I H G F E D C B A
          A B C D E F G H G F E D C B A
            A B C D E F G F E D C B A
              A B C D E F E D C B A
                A B C D E D C B A
                  A B C D C B A
                    A B C B A
                      A B A
                        A


26:

                                                  A
                                                A B A
                                              A B C B A
                                            A B C D C B A
                                          A B C D E D C B A
                                        A B C D E F E D C B A
                                      A B C D E F G F E D C B A
                                    A B C D E F G H G F E D C B A
                                  A B C D E F G H I H G F E D C B A
                                A B C D E F G H I J I H G F E D C B A
                              A B C D E F G H I J K J I H G F E D C B A
                            A B C D E F G H I J K L K J I H G F E D C B A
                          A B C D E F G H I J K L M L K J I H G F E D C B A
                        A B C D E F G H I J K L M N M L K J I H G F E D C B A
                      A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
                    A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
                  A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
                A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
              A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
            A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
          A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
        A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
      A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
    A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
  A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
  A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
    A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
      A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
        A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
          A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
            A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
              A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
                A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
                  A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
                    A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
                      A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
                        A B C D E F G H I J K L M N M L K J I H G F E D C B A
                          A B C D E F G H I J K L M L K J I H G F E D C B A
                            A B C D E F G H I J K L K J I H G F E D C B A
                              A B C D E F G H I J K J I H G F E D C B A
                                A B C D E F G H I J I H G F E D C B A
                                  A B C D E F G H I H G F E D C B A
                                    A B C D E F G H G F E D C B A
                                      A B C D E F G F E D C B A
                                        A B C D E F E D C B A
                                          A B C D E D C B A
                                            A B C D C B A
                                              A B C B A
                                                A B A
                                                  A

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


3
संबंधित - थोड़े अलग वर्णों के साथ एक ही चुनौती, कोई रिक्त स्थान, कोई इनपुट नहीं
Sp3000

1
@stewiegriffin नहीं, रिक्त स्थान वैसे भी होने चाहिए।
DJMcMayhem

4
इस पृष्ठ को स्क्रॉल करने से 26 आउटपुट के लिए एक साफ ऑप्टिकल भ्रम पैदा होता है।
कोबाल्टकॉक

जवाबों:


7

पायथन, 184 174 169 बाइट्स

R=range
def g(a):
 def f(x,y,z):
  for i in R(x,y,z):print "  "*(i-1)," ".join([chr(65+j) for j in R((a-i))]+[chr(65+(a-i-2)-j) for j in R((a-i-1))])
 f(a,0,-1);f(2,a,1)

संपादित करें: @ nedla2004 के लिए 5 बाइट्स सहेजे गए


मैं एक दो चीजें देखता हूं जिन्हें बदला जा सकता है। 1.) आप gतीन लाइनों पर रख सकते हैं। 2.) rangeएक चर के लिए असाइन करें । आप इन दोनों को यहां देख सकते हैं । (नोट: def f(x,y,z):एक जगह से पहले, forलूप से पहले एक टैब है।
nedla2004

वहाँ 3 rangeएस नहीं है कि आप बदल सकते हैं?
nedla2004

आप R((a-i))में R(a-i)और R((a-i-1))में बदलकर 4 बाइट्स बचा सकते हैं R(a-i-1), क्या आप नहीं कर सकते?
L3viathan

2 स्थान हैं forजिन्हें सूची समझ के अंदर छोरों से पहले हटाया जा सकता है ।
यति

एक बेकार व्हाट्सएप के बाद print
य्येति

6

05AB1E , 13 बाइट्स

कोड:

A.ps£û€û€S».c

स्पष्टीकरण:

A.p             # Push all prefixes of the alphabet.
   s£           # Only get the first input elements.
     û          # Palindromize, turns ['a', 'ab', 'abc'] -> ['a', 'ab', 'abc', 'ab', 'a']
      €û        # Palindromize each, turns ['a', 'ab', 'abc', 'ab', 'a']
                  into... ['a', 'aba', 'abcba', 'aba', 'a']
        €S      # Split each element.
          »     # Gridify, joins the arrays be newlines and the arrays in the arrays 
                  by spaces.
           .c   # Centralize, aligning the text to the center.

CP-1252 एन्कोडिंग का उपयोग करता है । इसे ऑनलाइन आज़माएं!


तो यह क्या "केंद्रीकृत" info.txt के लिए खड़ा है! वैसे अच्छा समाधान।
Osable

@Oepable Yep, यह इसमें newlines के साथ तार के लिए भी काम करता है (केवल सरणियों के बजाय)।
अदनान

5

MATL , 25 24 बाइट्स

Zv&+64+G-t64>*1&!t0*hTec

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

लंबे विकल्प:

  • 1Y20hiZv&+G-t0>*1&!t0*hTe) (26 बाइट्स)
  • Zv&+64+G-t64>*l2&Y"tZyP:o*c (27 बाइट्स)

व्याख्या

         % Implicit input 
Zv       % Symmetric range. For input 3 it gives [1 2 3 2 1]
&+       % Matrix of all pairwise additions. For input 3 it gives a 5×5 matrix
64+G     % Add 64 and subtract input. This gives the desired ASCII codes in the
         % central rhombus 
t64>*    % Make values less than 65 equal to 0. This affects entries outside the
         % central rhombus 
1&!      % Permute second and third dimensions. Transforms the 5×5 matrix into
         % a 5×1×5 array
t0*      % Push a copy of that array with all entries equal to 0
h        % Concatenate along the second dimension. Gives a 5×2×5 array
Te       % Collapse the second and third dimensions. Gives a 5×10 matrix
c        % Convert to char. Char zero is displayed as space
         % Implicit display

4

वी , 45 बाइट्स

i¬A[À|lDybA"Ó./& 
òÄó¨á© á úe± 
>>.YGp{òd

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

यह खत्म हो गया था जिस तरह से मैं उम्मीद से कम था, इसलिए मैं अभी तक एक स्पष्टीकरण पोस्ट नहीं करने जा रहा हूँ। उम्मीद है कि मैं इसे कुछ और पहले भंग कर सकता हूं। हमेशा की तरह, यहाँ एक हेक्सडंप है:

0000000: 69ac 415b 1bc0 7c6c 4479 6241 1f12 221b  i.A[..|lDybA..".
0000010: d32e 2f26 200a f2c4 f3a8 e1a9 20e1 20fa  ../& ....... . .
0000020: 65b1 200a 3e3e 2e59 4770 7bf2 64         e. .>>.YGp{.d

4

जे, 34 बाइट्स

(' ',u:65+i.26){~0>.]-[:+/~|@i:@<:

संख्या को इनपुट के रूप में लेता है और एक 2 डी चरित्र सरणी देता है।

व्याख्या

(' ',u:65+i.26){~0>.]-[:+/~|@i:@<:  input y
                                <:  y - 1
                             i:     "steps" -- i:2 -> -2 1 0 1 2
                           |        absolute value
                        +/~         addition table
                      [:            join right two tines into a conjunction
                    ]-              y - this table
                 0>.                max(0, that)
(' ',u:65+i.26)                     the alphabet preceded by a space
               {~                   index

विघटित परीक्षण का मामला

   n =: 5
   <: n
4
   i: <: n
_4 _3 _2 _1 0 1 2 3 4
   | i: <: n
4 3 2 1 0 1 2 3 4
   +/~ | i: <: n
8 7 6 5 4 5 6 7 8
7 6 5 4 3 4 5 6 7
6 5 4 3 2 3 4 5 6
5 4 3 2 1 2 3 4 5
4 3 2 1 0 1 2 3 4
5 4 3 2 1 2 3 4 5
6 5 4 3 2 3 4 5 6
7 6 5 4 3 4 5 6 7
8 7 6 5 4 5 6 7 8
   n - +/~ | i: <: n
_3 _2 _1 0 1 0 _1 _2 _3
_2 _1  0 1 2 1  0 _1 _2
_1  0  1 2 3 2  1  0 _1
 0  1  2 3 4 3  2  1  0
 1  2  3 4 5 4  3  2  1
 0  1  2 3 4 3  2  1  0
_1  0  1 2 3 2  1  0 _1
_2 _1  0 1 2 1  0 _1 _2
_3 _2 _1 0 1 0 _1 _2 _3
   0 >. n - +/~ | i: <: n
0 0 0 0 1 0 0 0 0
0 0 0 1 2 1 0 0 0
0 0 1 2 3 2 1 0 0
0 1 2 3 4 3 2 1 0
1 2 3 4 5 4 3 2 1
0 1 2 3 4 3 2 1 0
0 0 1 2 3 2 1 0 0
0 0 0 1 2 1 0 0 0
0 0 0 0 1 0 0 0 0
   u:65
A
   i.26
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
   65+i.26
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
   u:65+i.26
ABCDEFGHIJKLMNOPQRSTUVWXYZ
   ' ',u:65+i.26
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
   (' ',u:65+i.26) {~ 0 >. n - +/~ | i: <: n
    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA
 ABCDCBA
  ABCBA
   ABA
    A

चलिए इनपुट के साथ यह कोशिश करते हैं 5

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

   f =: (' ',u:65+i.26){~0>.]-[:+/~|@i:@<:
   f 1
A
   f 2
 A
ABA
 A
   f 3
  A
 ABA
ABCBA
 ABA
  A
   f 4
   A
  ABA
 ABCBA
ABCDCBA
 ABCBA
  ABA
   A
   f 5
    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA
 ABCDCBA
  ABCBA
   ABA
    A
   f 26
                         A
                        ABA
                       ABCBA
                      ABCDCBA
                     ABCDEDCBA
                    ABCDEFEDCBA
                   ABCDEFGFEDCBA
                  ABCDEFGHGFEDCBA
                 ABCDEFGHIHGFEDCBA
                ABCDEFGHIJIHGFEDCBA
               ABCDEFGHIJKJIHGFEDCBA
              ABCDEFGHIJKLKJIHGFEDCBA
             ABCDEFGHIJKLMLKJIHGFEDCBA
            ABCDEFGHIJKLMNMLKJIHGFEDCBA
           ABCDEFGHIJKLMNONMLKJIHGFEDCBA
          ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA
         ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA
        ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA
       ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA
      ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA
     ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA
    ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA
   ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA
  ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA
 ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA
 ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA
  ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA
   ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA
    ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA
     ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA
      ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA
       ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA
        ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA
         ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA
          ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA
           ABCDEFGHIJKLMNONMLKJIHGFEDCBA
            ABCDEFGHIJKLMNMLKJIHGFEDCBA
             ABCDEFGHIJKLMLKJIHGFEDCBA
              ABCDEFGHIJKLKJIHGFEDCBA
               ABCDEFGHIJKJIHGFEDCBA
                ABCDEFGHIJIHGFEDCBA
                 ABCDEFGHIHGFEDCBA
                  ABCDEFGHGFEDCBA
                   ABCDEFGFEDCBA
                    ABCDEFEDCBA
                     ABCDEDCBA
                      ABCDCBA
                       ABCBA
                        ABA
                         A

2
क्या आप सुनिश्चित हैं कि आउटपुट में रिक्तियाँ ठीक हैं या नहीं? अन्य सभी उत्तर इसे रिक्त स्थान के साथ आउटपुट करते हैं। मैंने सिर्फ मामले में पूछा है (क्योंकि यह MATLAB में भी थोड़ा आसान हो जाएगा। :)
स्टीवी ग्रिफिन

वहाँ कुछ याद आ रही रिक्त स्थान होने लगते हैं
DJMcMayhem

@DrMcMoylex मैंने चुनौती को गलत बताया, मुझे लगा कि अक्षरों के साथ एक 2D वर्ण सरणी वापस करना पर्याप्त था। फिक्स आरएन पर काम करना
कोनर ओ'ब्रायन

4

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

RØAḣUz⁶ŒBṚŒḄG

TryItOnline!

कैसे?

RØAḣUz⁶ŒBṚŒḄG - Main link: n         e.g. 3
R             - range                     [1,2,3]
 ØA           - uppercase alphabet yield  "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   ḣ          - head                      ["A","AB","ABC"]
    U         - upend (vectorises)        ["A","BA","CBA"]
     z        - transpose with filler...
      ⁶       -     space character       ["ABC"," AB","  A"]
       ŒB     - bounce (vectorises)       ["ABCBA"," ABA ","  A  "]
         Ṛ    - reverse                   ["  A  "," ABA ","ABCBA"]
          ŒḄ  - bounce (flat)             ["  A  "," ABA ","ABCBA"," ABA ","  A  "]
            G - grid format (join each with spaces and join with line feeds)
                                              A    
                                            A B A  
                                          A B C B A
                                            A B A  
                                              A    


2

सी #, 266 263 262 261 245 238 235 232 बाइट्स

golfed:

List<string> F(int n){int i=0;var l=new List<string>();for(;i<n;i++){var h="";for(var c='A';c<'B'+i;c++)h+=" "+c;l.Add(new string(' ',(n-i+1)*2)+h+" "+string.Concat(h.Remove(i*2).Reverse()));}for(i-=2;i>=0;i--)l.Add(l[i]);return l;}

टिप्पणियों के साथ अपुष्ट:

    List<string> F(int n)
    {
        int i = 0;
        var l = new List<string>(); //collection of lines

        for (; i < n; i++)
        {
            var h = ""; //half of line

            //adding letters to first half of line
            for (var c = 'A'; c < 'B' + i; c++)
                h += " " + c;

            //adding leading spaces + half of line + reversed half of line to list
            l.Add(new string(' ', (n - i + 1)*2) + h + " " + string.Concat(h.Remove(i*2).Reverse()));
        }

        //adding lines in descending order
        for (i -= 2; i >= 0; i--)
            l.Add(l[i]);

        return l;
    }

इसे आज़माएं: http://rextester.com/WIL67940

स्ट्रिंग्स की सूची लौटाता है। प्रत्येक स्ट्रिंग में एक आउटपुट लाइन होती है।

मैंने ऐसा मस्ती और ट्रेनिंग के लिए किया। मुझे पता है कि C # के साथ किसी भी कोड-गोल्फ को जीतना सीमा से बाहर है।

EDIT1: +ऑपरेटर को परिवर्तित स्ट्रिंग प्रक्षेप ।

EDIT2: c <= 'A' + i=>c < 'B' + i

EDIT3: के charसाथ स्वैप किया गया var

EDIT4: से बदल दिया वापसी प्रकार voidके लिए List

EDIT5: अनावश्यक चर को हटाना।

EDIT6: लाइन को अलग करने का नया तरीका।

EDIT7: @ Kaspar Kjeldsen, धन्यवाद।


1
आप स्ट्रिंग h = "" को बदलकर एक चरित्र को दाढ़ी कर सकते हैं; var h = "" के साथ;
कास्पर काजेल्डसेन

@KasparKjeldsen मुझे विश्वास नहीं हो रहा है कि मैंने इसे छोड़ दिया।
राजपूत

1
अभी भी छोटा हो सकता है! rextester.com/JLUL92950 string [] F (int n) {int i = 0; var q = 2 n-1; var l = new string [q]; के लिए (?; i <n; i ++) {var h = "", (var c = 'A'; c <'B' + i; c ++) h + = "" + c; l [qi-1] = l [i] = new string ('', (n-) i + 1) * 2) + h + "" + string.Concat (h.Remove (i * 2) .Rerseerse ());} वापसी l;}
कास्पर केजल्डसेन

2

सी, 124 123 बाइट्स

मुकुल कुमार की बदौलत 1 बाइट बचाई

वर्तमान में मेरे सिर को डबल लूप को एक एकल में बदलने के लिए नहीं मिलता है, फिलहाल इसे इस तरह छोड़ देगा। दरअसल, यह बड़ा है

for(l=0;l<4*n*(4*n+1);++l){
  i=l/(4*n+1)-2*n;
  j=l%(4*n+1)-2*n;

तो मैं बस नेस्टेड लूप देता हूं।

i,j,k;f(n){for(i=-2*n-1;++i<2*n;){for(j=-2*n-1;++j<=2*n;k=abs(i/2)+abs(j/2),putchar(j-2*n?k>=n||i%2||j%2?32:65+n+~k:10));}}

हीरे के आकार को प्राप्त करने के लिए मैनहट्टन मानदंड का उपयोग करता है ।

Ungolfed:

i,j,k;
f(n){
 for(i=-2*n-1;++i<2*n;){
  for(j=-2*n-1;++j<=2*n;
   k=abs(i/2)+abs(j/2),
   putchar(j-2*n?k>=n||i%2||j%2?32:65+n+~k:10)
  );
 }
}

आप को बदल कर एक बाइट कम कर सकते हैं j==2*nके साथ j-2*nऔर आदान प्रदान ? ()के साथ मूल्यों :()मूल्य
मुकुल कुमार

2

पायथन, 158 154 140 139 बाइट्स

r=range
s=int(raw_input())
a=map(chr,range(65,91))
for i in r(0,s)+r(0,s-1)[::-1]:
 print (' '.join(a[:i+1]+a[:i][::-1])).center(s*4-2,' '))

यह मेरी पहली पोस्ट है तो कोमल बनो! मैंने स्ट्रिंग्स को उलटने के लिए [:: - 1] का भारी उपयोग किया है, इसलिए हो सकता है कि वहां कुछ अनुकूलन हो। टिप्पणियाँ स्वागत है।

संपादन:

धन्यवाद @ पॉइडर कोड गोल्फ विषय के सहायक लिंक के लिए पॉइंटर के लिए और मुझे यह याद दिलाने के लिए कि पत्रों को उनके लिए रिक्त स्थान की आवश्यकता है। रिक्त स्थान हटाने के बारे में सामान्य सुझावों के लिए @wec भी धन्यवाद।


आप =कॉमा के बाद और प्रिंट स्टेटमेंट में ओपनिंग कोष्ठक से पहले अपने ऑपरेटरों (जैसे `=` बन जाता है ) के दोनों तरफ रिक्त स्थान निकाल सकते हैं । पायथन इंडेंटेशन किसी भी स्तर पर हो सकता है जब तक यह सुसंगत है, इसलिए आप अपने प्रिंट स्टेटमेंट को चार के बजाय केवल एक स्थान को स्वतंत्र करके 3 वर्णों को बचा सकते हैं। वे आसान बचत हैं जिन्हें मैं देख सकता हूं।
WEC

वेलकम सी:, हमारे पास यह अच्छा विषय है जिसमें बहुत सारे अजगर सुझाव (वर्णमाला उत्पन्न करने के लिए एक छोटा विकल्प सहित) है। जब से आप zसिर्फ एक समय का उपयोग कर रहे हैं , तो आपको एक चर का उपयोग करने की आवश्यकता नहीं है, बस s*2-1सीधे centerफ़ंक्शन में डाल दें । बस एक विवरण, आउटपुट में अक्षरों के बीच रिक्त स्थान ' '.joinहोना चाहिए, प्रिंट के ठीक बाद पर्याप्त होना चाहिए (लेकिन आपको पुन: कार्य करने की आवश्यकता हैs*2-1 सही मान प्राप्त करने के )।
रॉड

भी, डिफ़ॉल्ट के लिए मूल्य शुरू करने rangeऔर के लिए [:]है 0, तो आप यह स्पष्ट रूप से लगाने की जरूरत है डॉन
रॉड

2

ब्रेन-फ्लैक, 630 + 3 = 633 बाइट्स

इसके लिए -Aध्वज को चलाने की आवश्यकता होती है

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

(({})){(({}[()])<({}<({}<>)><>)<>(({}<>)<(({}[({})()])<{({}[()]<({}<(((((()()()()){}){}){}))>)>)}{}(({}<((((((()()()()){}){}){}){}()<>)<>)>)<{({}[()]<((()({}<(((((()()()()){}){}){}<>)<>)>)<>)<>)>)}{}({}<(((((()()()()){}){}){}<>)<>)>)((((()()()()){}){}){})>){(({})[()]<(({}((((()()()()){}){}){}){}<>)<>)(((((()()()()){}){}){}<>)<>)>)}{}>){({}[()]<<>(((((()()()()){}){}){}))<>>)}{}(((()()()()()){}<>)<>)>)>)}{}{}{}([]){((({}[()])<{({}[()]<({}<({}<>)<>>)>)}{}>)<{({}[()]<<>({}<>)>)}{}>)}{}((()()()()()){})<>{}([]){((({}[()])<{({}[()]<({}<({}<>)<>>)>)}{}>)<{({}[()]<<>({}<>)>)}{}>)}{}{{}({}[(()()()()()){}])}{}([]){{}({}<>)<>([])}{}<>

यह एक महान गोल्फ नहीं है लेकिन ब्रेन-फ्लैक में यह चुनौती काफी कठिन है



1

TSQL, 261 बाइट्स

एक पंक्ति क्वेरी - कोई लूपिंग नहीं

DECLARE @i INT =5;

WITH C as(SELECT top(@i*2-1)number z
FROM master..spt_values WHERE'P'=type)SELECT
top(@i*2-1)space(abs(z-@i+1)*2)+v+STUFF(reverse(v),1,3,'')FROM(SELECT
z,(SELECT top((@i-abs(@i-z-1)))char(65+z)+' 'FROM c
for xml path(''),type).value('.','varchar(52)')v FROM c)d

दुर्भाग्य से फिडेल आउटपुट लाइनों की शुरुआत में रिक्त स्थान खाती है। SQL सर्वर प्रबंधन स्टूडियो में निष्पादित होने पर रिक्त स्थान होंगे

बेला


1

रूबी, 137 115 100 84 बाइट्स

->n{e=->s{s+s.reverse[1..-1]};e[(0..n-1).map{|i|"  "*(n-i)+e[[*?A..?Z][0..i]*' ']}]}

टिप्पणियों के लिए धन्यवाद।


पहला जवाब अच्छा लगा। इसे सुधारने के तरीकों के लिए, रूबी में गोल्फ के लिए टिप्स पर एक नज़र डालें । सबसे पहले, कार्यों के बारे में kernigh की टिप । Btw, 0..n-10...n
9

1
यदि आप टर्नरी तर्क को उलटते हैं तो आप एकल चरित्र संबंधपरक ऑपरेटर का उपयोग कर सकते हैं n>0?…:"":।
9

1
"आपकी चुनौती एक प्रोग्राम या फ़ंक्शन लिखना है"। बेहतर है कि इसे एक अनाम लंबोदर बनाएं - जो इसके पैरामीटर को सीधे पूर्णांक के रूप में ले सकता है।
10

1

बेफुज 93 , 175 बाइट्स

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

शायद बहुत अच्छी तरह से गोल्फ नहीं है। ओह अच्छा। यह काफी कठिन था:

&:00p"B"\- :13v
v,: _v#`"@"<p5<
v," "<v`+*9<
>" ",: 35g7^
v47"v"_>1+ v
>p#  0^:>- v
v"A"g53<1v<
>+00g-` |53
v">",+91<p+
>74p35g:v11
_v# -g00<+^ _@#:
1>59*:91v> v
^p+199p8>#+ <

सौभाग्य यह कैसे काम करता है पता लगाना! मैं मुश्किल से जानता हूं।


रन-टाइम कोड संशोधन का अच्छा उपयोग।
जेम्स होल्डरनेस 12

1

सी #, 199 बाइट्स

q=>{Action<int>L=x=>{var s="";var k=0;for(;k<x;)s+=(char)('A'+k++)+" ";for(--k;--k>=0;)s+=(char)('A'+k)+" ";Console.WriteLine(new string(' ',(q-x)*2)+s);};var i=0;for(;i<q;)L(++i);for(;i>1;)L(--i);};

हमेशा की तरह, C # एक गोल्फ भाषा का अधिक हिस्सा नहीं है, लेकिन मैं गूढ़ संहिता की तुलना में "पठनीय" कोड को अधिक पसंद करता हूं। इसके अलावा मैं सिर्फ मनोरंजन के लिए यह किया :)

यहाँ एक अनगुल्ड संस्करण है, जिससे आप आसानी से समझ सकते हैं कि मैंने क्या किया:

Action<int> C = q => 
{
    Action<int> L = x => 
    {
        var s = "";
        var k = 0;
        for (; k < x;)
            s += (char)('A' + k++) + " ";
        for (--k; --k >= 0;)
            s += (char)('A' + k) + " ";
        Console.WriteLine(new string(' ', (q - x) * 2) + s);
    };
    var i = 0;
    for (; i < q;)
        L(++i);
    for (; i > 1;)
        L(--i);
};

(मुझे लगता है कि यह एक बहुत अनुकूलित किया जा सकता है ..)


1

जावा, 213 बाइट्स

void p(int n){int i=1,s=1,f,c;while(i>0){f=(n+1-i)*2;System.out.printf("%"+f+"s","");c=65;for(;c<64+i;)System.out.printf("%c ",c++);for(;c>64;)System.out.printf("%c ",c--);System.out.println();if(i==n)s=-1;i+=s;}}

Ungolfed:

void p(int n) {
    int i = 1, s = 1, f, c;
    while (i > 0) {
        f = (n + 1 - i) * 2;
        System.out.printf("%" + f + "s", "");
        c = 65;
        for (; c < 64 + i; ) System.out.printf("%c ", c++);
        for (; c > 64; ) System.out.printf("%c ", c--);
        System.out.println();
        if (i == n) s = -1;
        i += s;
    }
}

0

जावा, 394 बाइट्स

मैं आम तौर पर C # करता हूं, लेकिन इसे मिलाना अच्छा है ...

golfed:

String P(int n){String a="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o="",k="",s="";int i=0,j=0,l=0;java.util.List<String>b=new java.util.ArrayList<String>();for(i=1;i<=n;i++){k="";s=a.substring(0,i);l=s.length();for(j=0;j<l;j++)k+=s.toCharArray()[j]+" ";while(k.length()<n+n)k=" "+k;if(i>1)for(j=l-2;j>=0;j--)k+=s.toCharArray()[j]+" ";k+="\r\n";b.add(k);o+=k;}for(i=b.size()-2;i>=0;i--)o+=b.get(i);return o;}

Ungolfed:

public String P(int n)
{
    String a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", o ="", k="",s="";
    int i =0, j=0, l=0;
    java.util.List<String> b = new java.util.ArrayList<String>();
    for (i = 1; i <= n; i++) {
        k = "";
        s = a.substring(0, i);
        l = s.length();

        for (j = 0; j < l; j++)
            k += s.toCharArray()[j] + " ";

        while(k.length() < n + n)
            k= " " + k;

        if(i > 1)
            for (j = l-2; j >= 0; j--)
                k += s.toCharArray()[j] + " ";           

        k += "\r\n";
        b.add(k);
        o += k;
     }

    for (i = b.size()-2; i >= 0; i--)
        o += b.get(i);

    return o;
}

परीक्षा:

BuildAnAlphabetPyramid b = new BuildAnAlphabetPyramid();
System.out.println(b.P(5));
System.out.println(b.P(26));

        A 
      A B A 
    A B C B A 
  A B C D C B A 
A B C D E D C B A 
  A B C D C B A 
    A B C B A     
      A B A 
        A 

                                                  A 
                                                A B A 
                                              A B C B A 
                                            A B C D C B A 
                                          A B C D E D C B A 
                                        A B C D E F E D C B A 
                                      A B C D E F G F E D C B A 
                                    A B C D E F G H G F E D C B A 
                                  A B C D E F G H I H G F E D C B A 
                                A B C D E F G H I J I H G F E D C B A 
                              A B C D E F G H I J K J I H G F E D C B A 
                            A B C D E F G H I J K L K J I H G F E D C B A 
                          A B C D E F G H I J K L M L K J I H G F E D C B A 
                        A B C D E F G H I J K L M N M L K J I H G F E D C B A 
                      A B C D E F G H I J K L M N O N M L K J I H G F E D C B A 
                    A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A 
                  A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A 
                A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A 
              A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A 
            A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A 
          A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A 
        A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A 
      A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A 
    A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A 
  A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A 
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A 
  A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A 
    A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A 
      A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A 
        A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A 
          A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A 
            A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A 
              A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A 
                A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A 
                  A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A 
                    A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A 
                      A B C D E F G H I J K L M N O N M L K J I H G F E D C B A 
                        A B C D E F G H I J K L M N M L K J I H G F E D C B A 
                          A B C D E F G H I J K L M L K J I H G F E D C B A 
                            A B C D E F G H I J K L K J I H G F E D C B A 
                              A B C D E F G H I J K J I H G F E D C B A 
                                A B C D E F G H I J I H G F E D C B A 
                                  A B C D E F G H I H G F E D C B A 
                                    A B C D E F G H G F E D C B A 
                                      A B C D E F G F E D C B A 
                                        A B C D E F E D C B A 
                                          A B C D E D C B A 
                                            A B C D C B A 
                                              A B C B A 
                                                A B A 
                                                  A 

0

आर, 100 97 87 बाइट्स

x=scan();z=LETTERS;for(i in c(1:x,x:2-1))cat(rep(" ",x-i+1),z[1:i],if(i>1)z[i:2-1],"\n")

4:
#>         A 
#>       A B A 
#>     A B C B A 
#>   A B C D C B A 
#>     A B C B A 
#>       A B A 
#>         A

(अपडेट: scan()इनपुट के लिए; दुर्व्यवहार (x-1): 1 == x: 2-1।)

किसी भी एक कीवर्ड भाषा के लिए यह बहुत खराब नहीं है।


0

PHP, 122 116 बाइट्स

for($i=1-$n=$argv[1];$i<$n;)echo str_pad("",$a=abs($i++)),$s=join(range(A,chr(64+$n-$a))),substr(strrev($s),1),"\n";

क्या कोई छोटा रास्ता है?


0

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

n=>[...Array(n+n--)].map((_,i,a)=>a.map((_,j)=>(j=10+n-g(i)-g(j))>9?(10-j).toString(36):` `,g=i=>i<n?n-i:i-n).join` `).join`\n`

जहां \nशाब्दिक न्यूलाइन चरित्र का प्रतिनिधित्व करता है। निचले मामले में आउटपुट।


0

बैच, 269 बाइट्स

@echo off
set/an=%1-1
set a=ABCDEFGHIJKLMNOPQRSTUVWXYZ                         
for /l %%i in (-%n%,1,%n%)do set i=%%i&call:l
exit/b
:l
set s=
for /l %%j in (-%n%,1,%n%)do set j=%%j&call:c
echo%s%
exit/b
:c
set/aj=n-%i:-=%-%j:-=%
call set s= %%a:~%j%,1%%%s%

25 स्थानों पर लाइन 2 समाप्त होती है; इसका मतलब यह है कि जब वर्णमाला सूचकांक नकारात्मक हो जाता है तो वे वर्ग बस खाली रहते हैं।

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