ডায়াগোনাল বর্ণমালা ইনপুট থেকে


26

এই পোস্টে অনুপ্রাণিত । এই প্রশ্নটিকে সদৃশ হিসাবে চিহ্নিত করার জন্য আমি আপনাকে অনুরোধ করছি সত্যই এই প্রশ্নটি পড়ুন যে আমার কোনও সংযুক্তের একটি পরিবর্তন ification লিঙ্কযুক্ত যিনি কোনও ইনপুট জিজ্ঞাসা করবেন না এবং তা হ'ল বর্ণানুক্রমিকভাবে মুদ্রণ করা print

চ্যালেঞ্জ

সমেতভাবে 1-26 এর মধ্যে একটি ইনপুট দেওয়া হয়েছে, বর্ণমালাটি তির্যকভাবে মুদ্রণ করুন, তবে প্রদত্ত ইনপুটটির সূচীতে উল্লম্বভাবে মুদ্রণ শুরু করুন।

উদাহরণ

ইনপুট দেওয়া হয়েছে:

16

আপনার প্রোগ্রাম আউটপুট করা উচিত:

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

ইনপুট:

4

আউটপুট:

a
 b
  c
   d
   e
   f
   g
   h
   i
   j
   k
   l
   m
   n
   o
   p
   q
   r
   s
   t
   v
   w
   x
   y
   z

ইনপুট:

1

আউটপুট:

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

ইনপুট:

26

আউটপুট:

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

স্কোরিং

এটি , তাই প্রতিটি ভাষার সংক্ষিপ্ত উত্তর জিততে পারে।

শুভকামনা!


6
আমরা কি 0- বা 1-ইনডেক্সিং ব্যবহার করতে পারি?
notjagan

একটি সামঞ্জস্যপূর্ণ নেতৃস্থানীয় স্থান গ্রহণযোগ্য?
জিউসেপ

পেছনের স্থানগুলি কি গ্রহণযোগ্য?
ডোম হেস্টিংস

আমরা কি বড় হাতের ব্যবহার করতে পারি?
অ্যাডাম

আমরা কি স্ট্রিংগুলির একটি তালিকা ফিরিয়ে দিতে পারি?
অ্যাডাম

উত্তর:


13

কাঠকয়লা , 9 বাইট

↘✂β⁰N↓✂βη

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

↘✂β⁰N↓✂βη
 ✂β⁰N         the alphabet from position 0 to the input
↘               print diagonally, down and to the right
        ✂βη    the alphabet starting from the position of the input
       ↓        print downwards

এই সমাধানটি আর চারকোলের বর্তমান সংস্করণে কাজ করে না (সম্ভবত কোনও বাগ ফিক্সের কারণে) তবে এটি 10 ​​বাইটের সাথে সমস্যার সমাধান হয়ে যায় ↘✂β⁰N↓✂βIθ


2
আমি নিশ্চিত না কেন এটি কাজ করে; এটি একটি বাগ হতে পারে যা কয়েক সপ্তাহ আগে চালু হয়েছিল। (আপনাকে সাধারণত এর Iθপরিবর্তে ব্যবহার করতে হবে η))
নীল

@ নীল এটি আজ ভাঙা মনে হচ্ছে। Iθ ব্যবহার করা এটি সমাধান করে।
জেপি ডি লা

…βNপরিবর্তে ব্যবহার করে 1 বাইট সংরক্ষণ করুন ✂β⁰N
নীল

7

05 এ বি 1 , 11 বাইট

AvNI<‚Wysú,

প্রথমবারের মতো 05AB1E চেষ্টা করছি, তাই আমি টিপসের জন্য উন্মুক্ত।

এটি অনলাইন চেষ্টা করুন!

থেকে একটি শূন্য-সূচীবদ্ধ ইনপুট যদি 0করতে 25অনুমতি দেওয়া হয়, এই বাদ দ্বারা 10 বাইট হতে পারে <


Niiice! ঠিক কী পেলাম। আমি "লিফট" চেষ্টা করেছি তবে এটি পরিকল্পনা মতো কাজ করছে না। আমি মনে করি এটি বেশ অনুকূল :)।
ম্যাজিক অক্টোপাস উরান

4

জাভাস্ক্রিপ্ট (ES2017), 73 72 71 66 বাইট

কিছু কিছু বাইট সংরক্ষিত হয়েছে @ জাস্টিনমারিনারের জন্য ধন্যবাদ

f=(n,x=26)=>x?f(n,x-1)+(x+9).toString(36).padStart(x<n?x:n)+`
`:''

1
এই যোগ 10পর zকারণে হচ্ছে শেষে ++xসামনে x.toString()। বাগফিক্সড এবং 68 বাইট ব্যবহার করে গল্ফ করেছেন padStart: টিআইও
জাস্টিন মেরিনার

@JustinMariner ধন্যবাদ, আমি মনে করি আমি যে জন্য ES8 স্যুইচ পারে ...
ETHproductions

তড়িঘড়ি করে কিছু বাঁচাতে পারবেন? n=>g=(x=26)=>x?f(x-1)+(x+9).toString(36).padStart(x<n?x:n)+'\n':""
শেগি

@ শেগি সম্ভবত, জানি না যে এই ধরণের কারিঙের অনুমতি দেওয়া হয়েছে কিনা।
ETH প্রোডাকশনগুলি

আহ, বাদাম, আপনার অনুমোদনের প্রস্তাবটি এখন আর একমত নয় :(
শেগি

4

পাইথন 2, 61 58 57 বাইট

n=input()-1
for i in range(26):print(' '*i)[:n]+chr(i+97)

-3 বাইট রড ধন্যবাদ

মিঃ এক্সকোডারকে -1 আরও বাইট ধন্যবাদ



@ পাভেল যেটি তখন থেকে কাজ করে না, কেবলমাত্র ইনপুটটির এক লাইন থাকা সত্ত্বেও inputপ্রতিবার forলুপটি পুনরাবৃত্তি হবে বলে ডাকা হবে ।
notjagan


সাবস্ক্রিপশন ব্যবহার করে 57 বাইট
মিঃ এক্সকডার


4

রুবি, 51 46 43 বাইট

->n{(0..25).map{|x|(' '*x)[0,n-1]<<(x+97)}}

স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।

দেখে মনে হচ্ছে পাইথন ছেলেরা তাদের সাবস্ক্রিপ্ট নিয়ে কিছু নিয়েছিল। মিঃ এক্সকোডার পিপারির দ্রবণটির উন্নতি থেকে অনুপ্রেরণা গ্রহণ করে -5 বাইট।

rjust(51 বাইট) সহ পূর্ববর্তী সমাধান :

->n{i=0;(?a..?z).map{|c|c.rjust i+=n>c.ord-97?1:0}}


3

আর, 99 89 বাইট

@ মিকিটি 10 ​​টি বাইট সংরক্ষণ করেছে

ক্রিয়া

function(x)for(i in 1:26)cat(paste(c(rep(" ",min(x,i)),letters[i]),collapse=""),sep="\n")

ডেমো

f <- function(x)for(i in 1:26)cat(paste(c(rep(" ",min(x,i)),letters[i]),collapse=""),sep="\n")
f(1)
f(10)
f(15)
f(26)

1
সামান্য সঞ্চয় একটি দম্পতি। বরং ifelseচেষ্টা করুন min। পেস্টে একটি print.noquoteদিয়ে প্রতিস্থাপন করা যেতে পারে । সোজা গাড়ি ফেরত হতে পারে। ফাংশন বডি জন্য কোঁকড়া ধনুর্বন্ধনী বাদ দেওয়া যেতে পারে। cat'\n'\n
মিকিটি

আপনি এবং এর writeপরিবর্তে ব্যবহার করে আরও কিছু সঞ্চয় করতে পারেন :catpastewrite(c(rep(" ",min(x,i)),letters[i]),"",26,,"")
ব্যবহারকারী 2390246

3

রেটিনা , 72 68 বাইট

^
z
{2=`
$`
}T`l`_l`^.
\D
$.`$* $&¶
\d+
$* 
s`( *)( +)(?=.*¶\1 $)
$1

এটি অনলাইন চেষ্টা করুন! আউটপুট এর পিছনে সাদা স্থান অন্তর্ভুক্ত। $শূন্য-সূচক অনুমোদিত হওয়ার আগে স্পেস মুছে ফেলে 1 বাইট সংরক্ষণ করুন । সম্পাদনা: @ মার্টিনইেন্ডারের বর্ণমালা জেনারেটর ব্যবহার করে 4 বাইট সংরক্ষণ করা হয়েছে ব্যাখ্যা:

^
z
{2=`
$`
}T`l`_l`^.

বর্ণমালা .োকান।

\D
$.`$* $&¶

এটি তির্যক।

\d+
$* 

ইনপুটটিকে শূন্যস্থান হিসাবে আনারিতে রূপান্তর করুন।

s`( *)( +)(?=.*¶\1 $)
$1

ওভারলং লাইনগুলি ট্রিম করুন যাতে কোনও লাইনের শেষে ফাঁকা রেখার চেয়ে দীর্ঘ না হয়।


2

গণিত, 103 বাইট

(T=Table;a=Alphabet[];c=Column)[c/@{T[""<>{T[" ",i],a[[i]]},{i,#}],T[""<>{T[" ",#],a[[i]]},{i,#,26}]}]&

2

পাইথ , 21 17 15 বাইট

3% ব্যাটারি সহ একটি ফোনে সম্পন্ন।

VlG+*d?>QNNQ@GN

ব্যাখ্যা:

VlG        For each character in the alphabet (G)
+          Concatenate...
 *d        Space (d) times...
   ?>QNNQ  Ternary; if Q (input) is less than N, return N, else Q
 @GN       The Nth character of the alphabet (G)

এটি অনলাইন চেষ্টা করুন!


1
@ টোটালিহুমান আমার সবেমাত্র নিউ মেক্সিকো
স্টান স্ট্রাম

কিছুটা সংক্ষিপ্ততর পদ্ধতির সন্ধান পেয়েছি এবং আমি নিজের উত্তর পোস্ট করার সিদ্ধান্ত নিয়েছি ।
মিঃ এক্সকডার

@ মিঃ এক্সকোডার হ্যাঁ, এটিতে ভাল কাজ।
স্ট্যান স্ট্রাম



2

পাইথন , 52 বাইট

বেশ অবাক করে কেউই লক্ষ্য করেনি যে স্পষ্ট পদ্ধতিটি অন্যের মতো সংক্ষিপ্তও ছিল।

lambda k:[(i*" ")[:k-1]+chr(i+97)for i in range(26)]

এটি অনলাইন চেষ্টা করুন!

পাইথন , 53 বাইট

lambda k:[min(k-1,i)*" "+chr(i+97)for i in range(26)]

এটি অনলাইন চেষ্টা করুন!


2

হাস্কেল, 58 54 বাইট

f n=do m<-[1..26];([2..min n m]>>" ")++['`'..]!!m:"\n"

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

f n=                  -- input number is n
  do m<-[1..26]       -- for each m from [1..26], construct a string and concatenate
                      -- them into a single string. The string is:
   [2..min n m]>>" "  -- min(n,m)-1 spaces,
      ++              -- followed by
   ['`'..]!!m         -- the m-th char after `
      :               -- followed by
   "\n"               -- a newline 

সম্পাদনা করুন: @ লিন 4 টি বাইট সংরক্ষণ করেছেন। ধন্যবাদ!



@Lynn; ধন্যবাদ! আমি সর্বদা তালিকার জন্য স্বরলিপি না ভুলে যাই।
নিমি



1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 72 বাইট

n=>[..."abcdefghijklmnopqrstuvwxyz"].map((e,i)=>" ".repeat(i<n?i:n-1)+e)

স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।

এটি অনলাইন চেষ্টা করুন!


আমি জিজ্ঞাসা করতে পারি কেন নোড.জেএস? বৈধ স্বাভাবিক জেএস-এর মতো মনে হচ্ছে
ডাউনওয়েট

@ ডাউনগোট এটি টিআইও অটো ফর্ম্যাটিং
কনর ও'ব্রায়ান


এনভিএম অপেক্ষা করুন যেভাবে আমি ভাবছিলাম মূলত এটি ইটিএইচ এর উত্তরে পরিণত হয়েছে
ডাউনগোট

ES8 এ স্যুইচ করুন এবং এর padEndপরিবর্তে একটি বাইট সংরক্ষণ করুন repeat
শেগি

1

গণিত, 67 বাইট

SparseArray[x=#;{#,#~Min~x}->Alphabet[][[#]]&~Array~26,{26,#}," "]&

SparseArrayস্ট্রিংগুলির একটি প্রদান করে। ভিজ্যুয়ালাইজ করতে, Grid@সামনে সংযোজন করুন ।

ওল্ফ্রাম স্যান্ডবক্সে এটি ব্যবহার করে দেখুন

ব্যবহার

Grid@SparseArray[x=#;{#,#~Min~x}->Alphabet[][[#]]&~Array~26,{26,#}," "]&[5]
a
 b
  c
   d
    e
    f
    g

    ⋮

    z 

1

পাইথন 2 , 52 বাইট

lambda n:['%*c'%(min(i+1,n),i+97)for i in range(26)]

এটি অনলাইন চেষ্টা করুন!

আমি ধরে নিচ্ছি স্ট্রিংগুলির একটি তালিকা ঠিক আছে ...

সংক্ষিপ্ততম আমি পুনরাবৃত্তির সাথে পেতে পারি:

f=lambda n,i=0:i<26and['%*c'%(min(i+1,n),i+97)]+f(n,i+1)or[]




1

প্রোটন , 40 বাইট

ধরে নেওয়া যে স্ট্রিংগুলির একটি তালিকা ঠিক আছে।

k=>[(i*" ")[to~-k]+chr(i+97)for i:0..26]

এটি অনলাইন চেষ্টা করুন!

প্রোটন , 49 বাইট

পরিবর্তে ASCII- শিল্প হিসাবে:

k=>'\n'.join((i*" ")[to~-k]+chr(i+97)for i:0..26)

এটি অনলাইন চেষ্টা করুন!


1

সি # (.নেট কোর) , 66 + 18 বাইট

n=>new int[26].Select((x,i)=>$"{(char)(i+97)}".PadLeft(i<n?i+1:n))

বাইট গণনা অন্তর্ভুক্ত

using System.Linq;

এটি অনলাইন চেষ্টা করুন!

এটি প্রতিটি লাইনের জন্য একটি করে স্ট্রিংয়ের সংগ্রহ প্রদান করে। যদি এটি অনুমোদিত না হয় তবে উত্তরটি 17 বাইট দ্বারা string.Concat()এবং \nস্ট্রিংয়ের অভ্যন্তরে স্ফীত হবে

ব্যাখ্যা:

n =>
    new int[26]                      // Create a new collection of size 26
    .Select((x, i) =>                // Replace its members with:
        $"{(char)(i + 97)}"          // String of an alphabet character corresponding to the index
        .PadLeft(i < n ? i + 1 : n)  // Add spaces to the left
    )

1

এমএটিএল, 14 বাইট

26:tiXl2Y2oZ?c

এমএটিএল অনলাইন এ চেষ্টা করুন Try

ব্যাখ্যা

26      % number literal
:       % range; vector of equally spaced values [1...26]
t       % duplicate
i       % explicitly grab the input
Xl      % clamp the array to have a maximum value of the input
2Y2     % predefined literal: ['a'...'z']
o       % convert to a numeric array
Z?      % create sparse matrix using the first two inputs as the rows/columns 
        % and the letters 'a'...'z' as the values
c       % convert back to character and implicitly display

1

পাইথ , 12 বাইট

j.e+<*kdtQbG

এখানে চেষ্টা করুন!

স্ট্রিংগুলির তালিকাগুলি যদি অনুমোদিত হয় তবে এটি 11 বাইটে সংক্ষিপ্ত করা যেতে পারে :

.e+<*kdtQbG

পাইথ , 12 বাইট

VG+<*dxGNtQN

এখানে চেষ্টা করুন!

পাইথ , 14 বাইট

jm+<*d;tQ@Gd26

এখানে চেষ্টা করুন।

স্ট্রিংগুলির তালিকাগুলি যদি অনুমোদিত হয় তবে এটিকে 13 বাইটে সংক্ষিপ্ত করা যেতে পারে :

m+<*d;tQ@Gd26

কিভাবে এই কাজ?

অন্যান্য উত্তরগুলির চেয়ে পৃথক, এই মানচিত্রগুলি / সমস্ত 3 টি সমাধানে ছোট বর্ণমালার উপরে লুপ হয়।

ব্যাখ্যা # 1

j.e+<*kdtQbG - Full program.

 .e        G - Enumerated map over "abcdefghijklmnopqrstuvwxyz", with indexes k and values b.
     *kd     - Repeat a space a number of times equal to the letter's index.
    <   tQ   - Crop the spaces after the input.
   +      b  - Concatenate with the letter.
j            - (Optional): Join by newlines.

ব্যাখ্যা # 2

VG+<*dxGNtQN  - Full program.

VG            - For N in "abcdefghijklmnopqrstuvwxyz".
      xGN     - Index of the letter in the alphabet.
    *d        - Repeat the space a number of times equal to the index above.
   <     tQ   - But crop anything higher than the input.
  +        N  - Append the letter (at the end)

ব্যাখ্যা # 3

jm+<*d;tQ@Gd26 - Full program.

 m          26 - Map over [0...26) with a variable d.
    *d;        - Space repeated d times.
   <   tQ      - Crop anything whose length is higher than the input.
  +      @Gd   - Concatenate with the letter at that index in the alphabet.
j              - (Optional): Join by newlines.



1

q / kdb +, 33 31 বাইট

সমাধান:

-1{(&[x-1;til 26]#'" "),'.Q.a};

উদাহরণ:

q)-1{(&[x-1;til 26]#'" "),'.Q.a}16;
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

ব্যাখ্যা:

নূন্যতম ইনপুট এবং দৈর্ঘ্যের দৈর্ঘ্য পর্যন্ত স্পেসের একটি তালিকা তৈরি করুন 0..25, বর্ণমালার প্রতিটি অক্ষরের সাথে যুক্ত হয়ে স্টাডাউটে মুদ্রণ করুন।

-1{(&[x-1;til 26]#'" "),'.Q.a}; / solution
-1                            ; / print result to stdout and swallow return
  {                          }  / lambda function
                         .Q.a   / "abcd..xyz"
                       ,'       / concatenate (,) each
   (                  )         / do all this together
    &[   ;      ]               / minimum of each 
      x-1                       / implicit input (e.g. 10) minus 1 (e.g. 9)
          til 26                / 0 1 2 ... 23 24 25
                   '#" "        / take " " each number of times (0 1 2 )

নোট:

  • বন্ধনীগুলি আবার চালু করে -২ বাইট

1

জাভা 1.8 (ল্যাম্বদা ছাড়া), 98 বাইট

void m(int i){int c=0,o=97;String s="";for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);}

যুক্তিটি সোজা। কোনও ইনপুট ডেটা বৈধকরণ সরবরাহ করে না, খুব খারাপ!

  • আপডেট: শুধুমাত্র ফাংশন! অলিভিয়ার গ্রাগোয়ারকে ধন্যবাদ জানাই

1
কিছু বাইট বাঁচাতে, for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);এছাড়াও ব্যবহার করুন , আপনি একটি সম্পূর্ণ প্রোগ্রামের পরিবর্তে কেবল একটি ফাংশন বা ল্যাম্বদা লিখতে পারেন।
অলিভিয়ার

আমি যদি কেবল কোনও ফাংশনের মূল অংশটি অন্তর্ভুক্ত করি, তবে পাঠক কীভাবে বোঝবেন কী a[0]বোঝায়? আমি মনে করি স্নিপেটগুলি সংকলন না করলে তারা ন্যায্য নয়; চ্যালেঞ্জটি যেমন নির্মাণে সমৃদ্ধ একটি ভাষার সাথে আকর্ষণীয়।
ডগলাস

1
হ্যালো! আমি কোনও ফাংশন বা ল্যাম্বদা বলেছিলাম, স্নিপেট নয়। ;-) সুতরাং আপনি আপনার পুরো প্রোগ্রামটির পরিবর্তে void f(int i){...}(কোনও স্থিতির প্রয়োজন নেই) লিখতে পারেন i->{...}। দেখুন সমস্ত Java টিপস । উদাহরণ হিসাবে এই একই চ্যালেঞ্জের জন্য আমার উত্তর দেখুন । সাইটে মজা করুন! :-)
অলিভিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.