সহচরী রাজধানী


11

পটভূমি

বড় বড় অক্ষরে এক সারিতে লিখিত ইংরেজী বর্ণমালা কল্পনা করুন - ABCDEFGHIJKLMNOPQRSTUVWXYZ। ধরা যাক, আমাদের কাছে একটি বিশেষ পরিবর্তনশীল-প্রস্থের লেন্স রয়েছে যা সারিটির উপরে রাখলে, এটি বর্ণমালার একটি নির্দিষ্ট "উইন্ডো" দেখায়, যেখানে লেন্সের বাইরে বর্ণগুলি লুকানো থাকে with তদ্ব্যতীত, এই লেন্সগুলির একটি ক্রমযুক্ত বৈশিষ্ট্য রয়েছে, যাতে লেন্সের অভ্যন্তরে প্রথম অক্ষর এবং তারপরে প্রতিটি দ্বিতীয় অক্ষর নিম্ন-আকারযুক্ত হয়, তবে বাকী অক্ষরগুলি এখনও মূলধন প্রদর্শিত হয়।

উদাহরণস্বরূপ, আমরা দৈর্ঘ্য 5 বর্ণমালা মাঝখানে কোথাও স্থাপন করা একটি লেন্স হতে পারে এবং আমরা শুধুমাত্র দেখতে চাই . jKlMnনোট - (এখানে নেতৃস্থানীয় সময়ের হোয়াইটস্পেস শো নিশ্চিত করার) Kএবং Mএখনও মূলধনী হয়, যখন j, lএবং nসব কম -cased। বর্ণমালা বরাবর বাম থেকে ডানে এই লেন্সগুলি স্লাইড করার সাথে সাথে বিভিন্ন বর্ণগুলি প্রদর্শিত হবে এবং বিভিন্ন অক্ষরকে মূলধন করা হবে। বর্ণনাকালীন লেন্সগুলি স্লাইড করায় ফলস্বরূপ বর্ণগুলি আউটপুট করা এখানে কাজ।

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা কোনও ইনপুট পূর্ণসংখ্যার গ্রহণ করে 0 < n < 27এবং আউটপুট দেয় বা বর্ণমালা জুড়ে উপরের স্লাইডগুলির উপরে বর্ণিত লেন্স হিসাবে দৃশ্যমান স্ট্রিংগুলি গুলি দেয় returns

এর nচেয়ে বড় মানের জন্য 1, লেন্স বর্ণমালার বাম দিক থেকে "স্তব্ধ" করে শুরু হয়, সুতরাং কেবলমাত্র Aলেন্সের ডান-স্লটে প্রদর্শিত হবে। যে কোনও আউটপুটের প্রথম লাইনটি Aলেন্সের দৈর্ঘ্যের উপর নির্ভর করে একক , মূলধন বা ছোট হাতের হবে।

একইভাবে, লেন্সের Zবাম- স্লোটে থাকা অবস্থায় লেন্সগুলি স্লাইডিং শেষ করে (যার অর্থ যে কোনও আউটপুটে খুব লাইনটি সর্বদা 25 স্পেসের পরে একটি ছোট হাতের অক্ষরে থাকে 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

ইনপুট: 4

আউটপুট:

A
aB
AbC
aBcD
 bCdE
  cDeF
   dEfG
    eFgH
     fGhI
      gHiJ
       hIjK
        iJkL
         jKlM
          kLmN
           lMnO
            mNoP
             nOpQ
              oPqR
               pQrS
                qRsT
                 rStU
                  sTuV
                   tUvW
                    uVwX
                     vWxY
                      wXyZ
                       xYz
                        yZ
                         z

ইনপুট: 26

আউটপুট:

A
aB
AbC
aBcD
AbCdE
aBcDeF
AbCdEfG
aBcDeFgH
AbCdEfGhI
aBcDeFgHiJ
AbCdEfGhIjK
aBcDeFgHiJkL
AbCdEfGhIjKlM
aBcDeFgHiJkLmN
AbCdEfGhIjKlMnO
aBcDeFgHiJkLmNoP
AbCdEfGhIjKlMnOpQ
aBcDeFgHiJkLmNoPqR
AbCdEfGhIjKlMnOpQrS
aBcDeFgHiJkLmNoPqRsT
AbCdEfGhIjKlMnOpQrStU
aBcDeFgHiJkLmNoPqRsTuV
AbCdEfGhIjKlMnOpQrStUvW
aBcDeFgHiJkLmNoPqRsTuVwX
AbCdEfGhIjKlMnOpQrStUvWxY
aBcDeFgHiJkLmNoPqRsTuVwXyZ
 bCdEfGhIjKlMnOpQrStUvWxYz
  cDeFgHiJkLmNoPqRsTuVwXyZ
   dEfGhIjKlMnOpQrStUvWxYz
    eFgHiJkLmNoPqRsTuVwXyZ
     fGhIjKlMnOpQrStUvWxYz
      gHiJkLmNoPqRsTuVwXyZ
       hIjKlMnOpQrStUvWxYz
        iJkLmNoPqRsTuVwXyZ
         jKlMnOpQrStUvWxYz
          kLmNoPqRsTuVwXyZ
           lMnOpQrStUvWxYz
            mNoPqRsTuVwXyZ
             nOpQrStUvWxYz
              oPqRsTuVwXyZ
               pQrStUvWxYz
                qRsTuVwXyZ
                 rStUvWxYz
                  sTuVwXyZ
                   tUvWxYz
                    uVwXyZ
                     vWxYz
                      wXyZ
                       xYz
                        yZ
                         z

নিয়ম

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

উত্তর:



2

জাভাস্ক্রিপ্ট (ES6), 130 বাইট

n=>[...Array(n+25)].map(_=>[...Array(26)].map(_=>String.fromCharCode(j++<i|i+n<j?32:j+(j-i)%2*32),++i,j=64).join``,i=64-n).join`\n`

যেখানে \nআক্ষরিক নিউলাইন চরিত্রের প্রতিনিধিত্ব করে। আউটপুট আয়তক্ষেত্রটি লুপিং এবং তির্যকের বাইরে স্পেস আউটপুট করে কাজ করে যখন অক্ষর কোডে 32 টি যোগ করে এটি বিকল্প স্কোয়ারগুলিতে ছোট হয়। ব্যবহার replaceকরা আরও 1 বাইট দীর্ঘ বলে মনে হচ্ছে:

n=>[...Array(n+25)].map(_=>' '.repeat(26).replace(/./g,s=>j++<i|i+n<j?s:String.fromCharCode(j+(j-i)%2*32),++i,j=64),i=64-n).join`\n`

1

এডাব্লুকে, 160 বাইট

{d=-$1
m=25
for(;i<m+$1;i++){f="%"(++d<0?0:d<m?d:m)"s"
c=u=65
l=97
printf f,""
for(j=++E-$1;j<E&&j<26;j++){c=c==u?l:u
if(j<0)continue
printf("%c",j+c)}print""}}

এটাই যতটা টাইট আমি ভিতরে আসতে পারি AWK। 3 টি আলাদা আলাদা করে থাকা printএবং continueবাইট-কাউন্টে সত্যিই যুক্ত।

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