ত্রিভুজাকার বর্ণমালার স্লাইস


15

একটি ইনপুট নম্বর দেওয়া nথেকে 1থেকে 26(অথবা 0করতে 25), আউটপুট বর্ণমালা পড়া বাম-থেকে-ডান এবং যে সঙ্গে, চিঠি সংশ্লিষ্ট সহ a=1, b=2, c=3, ...। মোচড়টি হ'ল বর্ণগুলি বর্ণমালায় তাদের অবস্থানের সাথে যথাযথভাবে উল্লম্বভাবে পুনরাবৃত্তি করতে হবে। বিজোড় সংখ্যাগুলি (যখন- 1সূচিযুক্ত) অনুভূমিক রেখাটি জুড়ে ভারসাম্যপূর্ণ হওয়া উচিত, এমনকি সংখ্যার উপরের বা নীচের পক্ষে হওয়া উচিত (আপনি প্রথমে কোন দিকে যেতে হবে তা চয়ন করতে পারেন)। যদি আপনি 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

বিধি

  • আপনি বড় হাতের বা ছোট হাতের আউটপুট বেছে নিতে পারেন, তবে এটি অবশ্যই সামঞ্জস্যপূর্ণ।
  • Outputচ্ছিক ট্রেলিং নিউলাইন ব্যতীত আউটপুটে এক্সটেনারেস হোয়াইটস্পেস থাকতে পারে না।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য।
  • ইনপুট নম্বরটি কোনও উপযুক্ত বিন্যাসের মাধ্যমে নেওয়া যেতে পারে ।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

উত্তর:



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)

এক্সসট x*-(x&2)একটি বাছাই কী হিসাবে পর্যাপ্ত পরিমাণ উপলব্ধি করে দুটি বাইট সংরক্ষণ করেছে - sortedস্থিতিশীল বাছাইয়ের গ্যারান্টিটির ফলে ফলাফলের চিত্রের নীচের অর্ধেকটি ক্ষতিগ্রস্থ হয় ।


আপনি কি -বিপরীত ক্রমে লাইনগুলি আউটপুট দেওয়ার জন্য একটি ড্রপ করতে পারবেন না , যা আমার বিশ্বাসযোগ্য?
নীল

আমি মনে করি x*-(x&2)কাজ করে।
xsot



2

জাভাস্ক্রিপ্ট (ES6), 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`

@ লিনের সাজানোর কৌশলটি ব্যবহার করে। পুরো বর্ণমালাটি লেখার জন্য এটি গণনা করার চেয়ে দুটি বাইট কম সস্তা ছিল। সম্পাদনা: @ বুদ্ধিমানের জন্য 1 টি বাইট সংরক্ষণ করা হয়েছে কারণ আমি মনে রাখতে ভুলে গেছি যে \nআসলে আক্ষরিক নিউলাইন চরিত্রের প্রতিনিধিত্ব করে। (লাইনটি এত দীর্ঘ হলে আমি আমার উত্তরে আক্ষরিক নতুনলাইনগুলি পছন্দ করি না))


বর্ণমালায় দুটি বাইট সংরক্ষণ করুন: btoa`...` যেখানে ...ফলাফলের সাথে প্রতিস্থাপন করা হয় atob`abcdefghijklmnopqrstuvwxyzz` । (এছাড়াও, আপনি \nএকটি আক্ষরিক নিউলাইন দিয়ে প্রতিস্থাপন করতে পারেন ))
ETH প্রোডাকশনগুলি

@ETH প্রোডাকশনস আমি এটি গ্রহণ করি যেটি ইউটিএফের পরিবর্তে আইএসও এনকোডিং ব্যবহার করবে?
নীল

হ্যাঁ এটা হবে. আমরা কী জেএস-তে ইউটিএফ -8 এর পরিবর্তে আইএসও -8859-1 ব্যবহারের অনুমতি পাচ্ছি?
ETH প্রোডাকশনস

@ ইথ প্রডাকশন সম্ভবতঃ তবে আমি এটি কাজ করে বলে মনে হচ্ছে না, তাই আমি এটি প্রদর্শন করব না।
নিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.