वर्णमाला की सीढ़ी


30

चुनौती

आपका कार्य एक प्रोग्राम या फ़ंक्शन बनाना है जो निम्न इनपुट के साथ आउटपुट करता है:

a
bb
ccc
dddd
eeeee
ffffff
ggggggg
hhhhhhhh
iiiiiiiii
jjjjjjjjjj
kkkkkkkkkkk
llllllllllll
mmmmmmmmmmmmm
nnnnnnnnnnnnnn
ooooooooooooooo
pppppppppppppppp
qqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrr
sssssssssssssssssss
tttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzz

स्कोरिंग

यह , इसलिए प्रत्येक भाषा में सबसे कम उत्तर जीतता है।


4
लाइनों की सूची के रूप में आउटपुट?
पूरी तरह से अमानवीय

5
क्या हम इसके बजाय अपरकेस वर्णमाला का उपयोग कर सकते हैं?
यूरेल

9
मुझे वर्णमाला की चुनौतियाँ याद आ रही थीं! (लेकिन लीके नन को पता न चलने दें)
लुइस मेंडो

9
मैंने बहुत मेहनत से जाँच की अगर यह एक दुपट्टा था और जाहिरा तौर पर यह नहीं है
नीली

4
@totallyhuman जो आपके ऊपर है।
स्पूकीगेंगर

जवाबों:


14

05AB1E , 2 बाइट्स

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

ध्यान दें कि यह आउटपुट लाइनों की एक सूची के रूप में है, जैसा कि ओपी ने स्पष्ट रूप से अनुमति दी है। लिंक सुंदर-प्रिंट के साथ एक संस्करण का उपयोग करता है (newlines द्वारा शामिल)।

यह काम किस प्रकार करता है

  • A निचली वर्णमाला का उत्पादन करता है।
  • ƶ वर्णमाला को लिफ्ट करता है (प्रत्येक तत्व को उसके सूचकांक से गुणा करता है)।
  • » newlines द्वारा जुड़ता है।


9

एपीएल (डायलॉग) , 12 8 5 बाइट्स एसबीसीएस

3 बाइट्स @ngn की बदौलत बच गए

4 बाइट्स @ Adám की बदौलत बच गए

⍴⍨⌸⎕A

ओपी ने स्पष्ट किया कि अपरकेस अक्षर मान्य हैं, साथ ही साथ आउटपुट भी हैं।

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

कैसे?

अमेरिका में हर पत्र देता है ⎕Aउस में अपनी अनुक्रमणिका, समारोह में सौंप दिया साथ lphabet ⍴⍨बाईं तर्क और सूचकांक के रूप में पत्र के साथ तों सही तर्क के रूप में।

⍴⍨resha its अपनी बाईं ओर से आपूर्ति की गई लंबाई के लिए अपने सही तर्क से बचता है। बाएं और दाएं स्विच करता है (इसलिए इसका प्रतीक, इस स्पष्टीकरण को पढ़ने वाले किसी व्यक्ति के चेहरे की तरह)।


819⌶↑⎕A⍴¨⍨⍳26
23

@ Adám धन्यवाद! मैंने / और \ के सभी रूपों की कोशिश की, पूरी तरह से उपेक्षित आकार U
Uriel

आप भी हटा सकते हैं।
अड्म

@ Adám लेकिन यह देखने में बदसूरत लग रहा है ri
Uriel

बॉक्सिंग चालू करें!
अड्म

8

हास्केल , 27 बाइट्स

[c<$['a'..c]|c<-['a'..'z']]

इसे ऑनलाइन आज़माएं! लाइनों की एक सूची देता है। (यह इंगित करने के लिए @totallyhuman का धन्यवाद कि अब इसकी अनुमति है)

स्पष्टीकरण:

             c<-['a'..'z']  -- for each character c from 'a' to 'z'
[           |c<-['a'..'z']] -- build the list of
[   ['a'..c]|c<-['a'..'z']] -- the lists from 'a' to c, e.g. "abcd" for c='d'
[c<$['a'..c]|c<-['a'..'z']] -- with each element replaced by c itself, e.g. "dddd"

* धनुष * एक noob के लिए स्पष्टीकरण? क्या <$अपना पहला तर्क n बार दोहराता है , जहाँ n उसके दूसरे तर्क की लंबाई है?
22:33 पर पूरी तरह से अमानवीय

@totallyhuman तुम वहाँ जाओ। मोनाड्स और पुरुषों से पूछने के लिए स्वतंत्र महसूस करें यदि आपके पास और प्रश्न हैं।
लैकोनी 22

प्रस्तावना में कुछ बहुत दिलचस्प ऑपरेटर हैं ... स्पष्टीकरण के लिए धन्यवाद!
22

7

ब्रेनफक , 74 बाइट्स

++++++++[>+>+++>++++++++++++<<<-]>++>++>+>+<<[->>[->+<<.>]>[-<+>]<+<+<<.>]

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

व्याख्या

++++++++[>+>+++>++++++++++++<<<-]>++>++>+>+
TAPE:
  000
  010   C_NEWLINE
  026   V_ITERCOUNT
  097   V_ALPHA
 >001<  V_PRINTCOUNT
  000   T_PRINTCOUNT

V_ITERCOUNT TIMES:      <<[-   

  V_PRINTCOUNT TIMES:     >>[-
    INC T_PRINTCOUNT        >+
    OUTPUT V_ALPHA          <<.
                          >]

  RESTORE V_PRINTCOUNT    >[-<+>]
  INC V_PRINTCOUNT        <+
  INC V_ALPHA             <+
  OUTPUT C_NEWLINE        <<.
                        >]

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


7

Befunge-98 (FBBI) , 27 बाइट्स

1+:0\::'`j'@+\k:$$>:#,_$a,

एक प्रतिस्थापन चरित्र कहां है (ASCII 26)

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

अपरकेस अक्षरों का उपयोग करता है, और एक अनुगामी न्यूलाइन है।

व्याख्या

कोड एक काउंटर (0 शुरू में), और हर लूप को स्टोर करके काम करता है:

  • 1+ - इसे 1 से बढ़ाएँ
  • :0\:: - चीजों को धक्का देता है ताकि स्टैक इस तरह दिखे: bottom [N, 0, N, N, N] top
  • '`j'@ - काउंटर 26 से अधिक है, तो जाँच करता है
    • j'@- अगर यह है, हम पर कूद 'और का उपयोग कर बाहर निकलें@
    • j'@- यदि यह नहीं है, तो हम उस पर अमल करते हैं ', जो @स्टैक के ASCII मान को धक्का देता है

अब स्टैक इस तरह दिखता है: bottom [N, 0, N, N, 64] top

  • +\- जोड़ता है, फिर शीर्ष 2 को स्विच करता है: bottom [N, 0, (N+64), N] top पहली बार के माध्यम से, यह एएससीआईआई 65, या हैA
  • k:- शीर्ष (N+1)समय से दूसरे को दोहराता है - अब स्टैक पर (N+2)मान हैं (N+64)(प्लस Nऔर 0पहले से)
  • $$- शीर्ष 2 मूल्यों को फेंक दें - अब केवल के Nमूल्य हैं(N+64)
  • >:#,_- प्रत्येक टॉप वैल्यू को प्रिंट होने तक प्रिंट करता है 0- इसका मतलब Nहै (N+64)कि प्रिंट की हुई प्रतियां
  • $- दूर फेंक देता है 0- अब स्टैक बस हैN
  • a, - एक प्रिंट प्रिंट करता है

और यह दोहराता है


मुझे पसंद है कि कैसे मैंने @प्रोग्राम को समाप्त करने और काउंटर से जोड़ने के लिए दोनों का उपयोग किया ।


@JamesHolderness हां। उस पकड़ने के लिए धन्यवाद!
MildlyMilquetoast

7

रूबी , 32 30 बाइट्स

-2 बाइट्स @ EricDuminil की बदौलत।

27.times{|n|puts (n+96).chr*n}

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


1
अति उत्कृष्ट। ओपी की एक टिप्पणी के अनुसार, अनुगामी / अग्रणी नई सूचियों की अनुमति है। उस मामले में 27.times{|n|puts (n+96).chr*n}30 बाइट्स के साथ सही होगा
एरिक डुमिनील


6

एक्सेल VBA, 38 बाइट्स

तत्काल विंडो का उपयोग करना। :)

[A1:A26]="=REPT(CHAR(96+ROW()),ROW())"

आह। मेरी गलती। मैंने सोचा कि यह एक्सेल है क्योंकि मैंने इमीडिएट विंडो का उपयोग करके एक्सेल फ़ंक्शंस का उपयोग किया है।
रेमोएल

आप टर्मिनल को हटाकर एक बाइट छोड़ सकते हैं"
टेलर स्कॉट

5

BASH, 59 54 40 बाइट्स

for l in {a..z};{
a+=a
echo ${a//a/$l}
}

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

धन्यवाद। 5 बाइट्स @ जस्टिन मेरिनर


1
forपाश का उपयोग कर नीचे golfed किया जा सकता है इस टिप 54 बाइट्स के लिए: यह ऑनलाइन कोशिश करो!
जस्टिन मेरिनर

5

रूबी, 38 बाइट्स

स्ट्रिंग्स का एक ऐरे देता है

->{(a=*?a..?z).map{|x|x*-~a.index(x)}}

-5 बाइट्स पूरी तरह से धन्यवाद के लिए धन्यवाद

* -11 बाइट्स जॉर्डन द्वारा कुछ उत्कृष्ट गोल्फ के लिए धन्यवाद।


यह मेरी गिनती से केवल 48 बाइट्स है
जॉर्डन

1
आपको बिल्कुल भी ज़रूरत नहीं है "\n"; putsक्या आपके लिए (हालांकि भविष्य के संदर्भ के $/लिए 2 बाइट्स कम हैं) -लेकिन आप putsपूरी तरह से छुटकारा पा सकते हैं यदि आप इसे एक लंबोदर बनाते हैं जो बस एक सरणी रेखा देता है। तुम भी बदल सकते हैं a=[*?a..?z];puts a.mapकरने के लिए puts (a=*?a..?z).mapऔर x*(a.index(x)+1)करने के लिए x*-~a.index(x)। सभी एक साथ 38 बाइट्स हैं
जॉर्डन

38-बाइट संस्करण TiO पर ठीक काम करता है (पिछली टिप्पणी में लिंक देखें)। ध्यान दें कि (a=*?a..?z)ब्लॉक के अंदर है, लैंबडा के तर्कों का हिस्सा नहीं है।
जॉर्डन


4

MATL , 9 बाइट्स

2Y2"@X@Y"

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

व्याख्या

2Y2     % Push string 'abc...z'
"       % For char in that string each
  @     %   Push current char
  X@    %   Push iteration index (1-based)
  Y"    %   Run-length decoding: repeat char that many times
        % Implicit end. Implicit display

क्या आप जानते हैं कि &डुप्लिकेट और ट्रांज़ोज़ का2Y2 उपयोग क्यों नहीं किया जा सकता है ?
स्टीवी ग्रिफिन

@StewieGriffin &वास्तव में डुप्लिकेट और हस्तांतरण नहीं करता है, हालांकि यह कभी-कभी उसी परिणाम का उत्पादन करता है। यह क्या करता है अगले फ़ंक्शन के इनपुट / आउटपुट की संख्या को संशोधित करें। उदाहरण के लिए, यदि आप उपयोग करते हैं &+, तो +फ़ंक्शन अब दो के बजाय एक इनपुट लेता है, और इनपुट के योग को ट्रांसपोज़्ड करता है। लेकिन ऐसा केवल इसलिए है कि + 1 इनपुट (उसी के लिए =, >और कुछ अन्य लोगों के साथ) के साथ कैसे काम करें
लुइस मेंडू


4

जेली ,  5  4 बाइट्स

डरपोक पायथन कार्यान्वयन दुरुपयोग

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

Øa×J

एक निलादिक लिंक जो स्ट्रिंग्स की एक सूची लौटाता है, लाइनें
(इसे पूर्ण कार्यक्रम के रूप में नए सिरे से प्रिंट करने के लिए बस Yवापस जोड़ें )।

इसे ऑनलाइन आज़माएं! (पाद लेख लिंक को निलाद (¢)कहता हैऔर परिणाम का पायथन प्रतिनिधित्व करता है (ŒṘ) स्पष्टता के लिए(क्योंकि पूर्ण-प्रोग्राम व्यवहार डिफ़ॉल्ट रूप से परिणाम को एक साथ तोड़ देगाabbccc...)

कैसे?

Øa×J - main link: no arguments
Øa   - yield the alphabet = ['a','b','c',...,'z']
   J - range of length    = [1,2,3,...,26]
  ×  - multiplication     = ["a","bb","ccc",...,"zzzzzzzzzzzzzzzzzzzzzzzzzz"]
     - (Python multiplication lengthens chars to strings - not usually a Jelly thing)


हम्म, हो सकता है - हम पंक्तियों की एक सूची "आउटपुट" कर सकते हैं, लेकिन हमें "एक प्रोग्राम बनाना चाहिए" - जब एक प्रोग्राम के रूप में चल रहा है तो चार बाय्टर का आउटपुट स्मैश होता है, इसका कोई संकेत नहीं है कि यह प्रकृति की सूची है।
जोनाथन एलन

कार्यक्रम या कार्य
Adám

4

MATL , 11 बाइट्स

2Y2t!g*!YRc

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

वांछित अक्षरों का एक बड़ा वर्ग 26x26 मैट्रिक्स प्राप्त करने के लिए प्रसारण गुणन का उपयोग करता है। अगला, निचला त्रिकोणीय भाग लिया जाता है, और अंतर्निहित रूप से मुद्रित किया जाता है।

इसके अलावा 11 बाइट्स:

2Y2!t~!+YRc  % Using broadcast addition with zeroes
2Y2!l26X"YR  % Using 'repmat'

@StewieGriffin मैं वास्तव में एक ही समाधान के साथ आने के संयोग पर आपके ऑक्टेव उत्तर पर टिप्पणी कर रहा था।
Sanchises

4

जावास्क्रिप्ट, 87 बाइट्स , 72 बाइट्स (@steenbergh के लिए बहुत बहुत धन्यवाद)

मेरा पहला जवाब भी:

for(i=1,j=97;j<123;){console.log(String.fromCharCode(j++).repeat(i++))};

स्वागत हे! लगता है कि आप ind=1शुरू में चारों ओर के रिक्त स्थान को हटाकर , अर्धविराम के बाद i<123और अंतिम अर्धविराम को छोटा कर सकते हैं । इसके अलावा, कृपया अपने हैडर को भाषा के आधार पर थोड़ा और स्पष्ट करें - bytecount, # के साथ उपसर्ग।
स्टीनबेरग

आप छह बाइट्स को jपूरी तरह से for(i=1;i<27;){console.log(String.fromCharCode(i+96).repeat(i++))}
गिराकर

@steenbergh एक बार फिर से आपका धन्यवाद करता है, आप मेरी मदद करने के लिए कितने दयालु हैं।
एनटीसीजी

4

जाप , by बाइट्स

लाइनों की एक सरणी आउटपुट

;C¬Ëp°E

कोशिश करो


व्याख्या

भाजित ( ¬) लोअरकेस वर्णमाला ( ;C) वर्णों की एक सरणी के लिए, सरणी पर नक्शा ( Ë) और दोहराएँ ( p) वर्तमान सूचकांक द्वारा वर्तमान तत्व ( E) बढ़ा हुआ ( °) बार।


वास्तव में मेरे पास क्या था, सिवाय इसके कि मैंने इस्तेमाल किया®p°Y
ETHproductions

3

पिप , 9 बाइट्स

FczPcX++i

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

स्यूडोकोड में, यह है

For-each c in z
    Print (c string-multiply ++i)

जहाँ zलोअरकेस वर्णमाला के iलिए पूर्व निर्धारित है और 0 पर पूर्व निर्धारित है।


मानचित्र-आधारित समाधान एक अतिरिक्त बाइट लेते हैं क्योंकि उन्हें -nकई लाइनों पर प्रदर्शित करने के लिए ध्वज की आवश्यकता होती है :

{aX++i}Mz
B X_+1MEz


3

हास्केल , 31 बाइट्स

-12 बाइट्स निम्मी को धन्यवाद।

zipWith replicate[1..26]['a'..]

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

यह एक स्निपेट नहीं है, यह एक अशक्त कार्य है (कोई तर्क नहीं लेता है) जो इस मेटा सर्वसम्मति के कारण उन पंक्तियों की सूची को आउटपुट करता है, जिनकी अनुमति है ।


3

आर , 38 बाइट्स

एक अपेक्षाकृत निर्बाध उत्तर। i1 से 26 के लिए Iterate , iवर्णमाला iसमय (एक अंतर्निहित रेखा विराम के साथ) के वें अक्षर को प्रिंट करें ।

for(i in 1:26)print(rep(letters[i],i))

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

एक और अधिक दिलचस्प दृष्टिकोण निम्नलिखित की तरह कुछ का उपयोग करने के लिए हो सकता है:

cat(letters[(1:351*2)^.5+.5])

इससे हमें सभी अक्षर सही मात्रा में मिलते हैं, लेकिन कोई भी लाइनब्रेक नहीं करता है। शायद मुझसे ज्यादा चालाक कोई इसका इस्तेमाल कर सकता है जो कि गोल्फर को जवाब दे सके।


2
मुझे यकीन नहीं है कि अपने दूसरे दृष्टिकोण का उपयोग कैसे करें, या तो, लेकिन मुझे पता है कि rep(letters, 1:26)बहुत कम है ...
Giuseppe

@ गुइसेप्पे हह! जैसे मैंने कहा, "मुझसे ज्यादा होशियार कोई है" निश्चित रूप से आवश्यक है।
rturnbull


3

जंग , 82 बाइट्स

||for i in 1..27u8{println!("{}",((i+96) as char).to_string().repeat(i as usize))}

मुझे उम्मीद थी कि यह बहुत छोटा होगा, लेकिन स्पष्ट रूप से परिवर्तित / कास्टिंग के बीच प्रकार बहुत सारे बाइट्स लेता है :(

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




3

जे , 18 17 बाइट्स

a.{~(#"0+&96)i.27

स्पष्टीकरण:

              i.27      - list of integers 0 - 26
     (   +&96)          - adds 96 to the above list (starting offset of 'a')
      #"0               - copies the right argument left argument times  
  {~                    - select items from a list (arguments reversed)
a.                      - the whole alphabet


#"0 +&96 is a hook, which means that at first +96 is applied to the list i.27,
resulting in a list 96, 97, 98... 122, then #"0 is applied to this result. 
So it is evaluated as ((i.27)#"0(96+i.27)){a:

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



3

ऑक्टेव , 25 24 बाइट्स

['',tril((x=65:90)'+~x)]

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

Giuseppe को एक बाइट धन्यवाद दिया, जिसने मुझे सूचित किया कि ओपी ऊपरी मामले पत्रों की अनुमति देता है।

स्पष्टीकरण:

xऊपरी केस के वर्णमाला के ASCII-मानों के साथ एक वेक्टर बनाएं और इसे स्थानांतरित करें। xएक ग्रिड बनाने के क्रम में उपेक्षित (इस प्रकार 26 शून्य, एक पंक्ति वेक्टर में जोड़ें ) (एएससीआईआई-मान का मान):

AAAA
BBBB
CCCC

निचले त्रिकोणीय मैट्रिक्स को लें और खाली स्ट्रिंग के साथ कंक्रीटिंग करके वर्णों में परिवर्तित करें।


3

सी (जीसीसी) , 48 बाइट्स 50 बाइट्स

नीचे दिए गए टिप्पणियों में क्लीबल और स्टीडबॉक्स के अनुसार, पुन: चलने योग्य संस्करण।

s[9];main(i){for(;i<27;)puts(memset(s,i+95,i++));}

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


1
अच्छा जवाब। मुझे लगता है कि आपका फ़ंक्शन अगली बार इसे कॉल करने में विफल हो जाएगा और इस लिंक के अनुसार इसे पुन: प्रयोज्य होना चाहिए; codegolf.meta.stackexchange.com/questions/4939/…
क्लेब्लांक

यहां 50 बाइट्स में एक निश्चित संस्करण है: s[9];main(i){for(;i<27;)puts(memset(s,i+95,i++));}फिर भी मेरे जवाब को कुछ बाइट्स से
हरा देता है


3

जाप, 17 16 11 बाइट्स

ओलिवर को -5 बाइट्स धन्यवाद

आईएसओ-8859-1 में

;26ÆCgX pXÄ

सबसे अच्छा स्कोर नहीं है, लेकिन मैं अभी भी एक नौसिखिया हूँ। किसी भी सुझाव बहुत स्वागत है।

आउटपुट लाइनों की सूची, जैसा कि ओपी ने अनुमति दी है। लिंक में नई बाइट्स के लिए 3 बाइट्स हैं।

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

;                      - Use string variables
 26                    - Literal 26
   Æ                   - For range 0..26
    C                  - Alphabet
     gX                -         . character at index X
        pXÄ            - Duplicate X+1 times
                       - End function (implicit)

1
अच्छा! 1oBÊÄद्वारा प्रतिस्थापित किया जा सकता है 26õ। आप कुछ और करके कुछ और बाइट्स बचा सकते हैं जैसे;26ÆCgX pXÄ
ओलिवर

@ कैसे हेक मैंने नहीं देखा कि 26 वर्णमाला की लंबाई से छोटा है ?! धन्यवाद। इसके अलावा, मेरा बुरा मुझे नहीं लगा कि तर्क oलेता fहै ...
RedClover
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.