পাইথন 3.5 - 262 236 220 বাইট:
-16 বাইটস @ ক্যাটসআরএফ্লুফিকে ধন্যবাদ! আমার পুরো ফাংশন এখন শেষ পর্যন্ত একক লাইনে থাকতে পারে! :)
from collections import*
def a(v):o=OrderedDict;j=[chr(i+97)for i in range(26)];d=o((j[i],(' '+'_'*(i+1)+'\n'+j[i]+'|'+'_'*(i+1)+'|'))for i in range(26));f=lambda w:'a'[w:]or f(w-1)+j[w]+f(w-1);[print(d[g])for g in f(v)]
এটি কিছুটা দীর্ঘ হতে পারে এবং এটি বিল্ডিংয়ের মধ্যে নতুন লাইনগুলি মুদ্রণ করতে পারে তবে এটি যা প্রয়োজন তা করে in এটি নিশ্চিত করার জন্য আপনি এটি পরীক্ষা করে নিতে পারেন।
সম্পাদনা করুন:
আমার পূর্বের গল্ফড কোড যা সঠিকভাবে সঠিক প্যাটার্নটি মুদ্রণ করে নি। যাইহোক, এখন উপরে দেখানো একটি করে এবং এটি আমার মতে এটি ভাল করে। এটি নিশ্চিত করার জন্য আপনি নিজের জন্য এটি চালাতে পারেন।
বিঃদ্রঃ: প্রোগ্রামটি প্রতিটি "বিল্ডিং" এর পিছনে সমস্ত ছোট হাতের অক্ষর মুদ্রণ করে। আমি আশা করি ঠিক আছে।
ব্যাখ্যার সাথে অদম্য সংস্করণ:
from collections import*
def a(v):
o=OrderedDict # Assign the OrderedSict function to "o"
j=[chr(i+97)for i in range(26)] # Create a list with all 26 lowercase letters of the alphabet
d=o((j[i],(' '+'_'*(i+1)+'\n'+j[i]+'|'+'_'*(i+1)+'|'))for i in range(26)) # Create a dict assigning each letter it's corresponding building with its corresponding length
f=lambda w:'a'[w:]or f(w-1)+j[w]+f(w-1) # Return the ABACABA sequence based on the user input
[print(d[g])for g in f(v)] # Print out the building according to the sequence returned by the above lambda function (thanks to @CatsAreFluffy for this method to print it! :) )
মূলত আমি যা করছি তা প্রথমে সংগ্রহের মডিউলের অর্ডারড ডিকশনারি ফাংশনটি আমদানি করা, এবং তারপরে "জে" তালিকার প্রতিটি ছোট কেস লেটারের সাথে সংশ্লিষ্ট ভবনের সাথে সংযুক্ত দৈর্ঘ্য সহ আন্ডারস্কোরগুলিতে অর্ডার করা অভিধান তৈরি করা। তারপরে আমি ক্রমটি ব্যবহার করে ব্যবহারকারীর ইনপুট, f=lambda w:"a"[w:]or f(w-1)+j[w]+f(w-1)
ফাংশনটি ব্যবহার করে এবং তারপরে ফিরে আসা ক্রমের ভিত্তিতে সিক্যুয়েন্সটি গণনা করি, এর পিছনে প্রতিটি বিল্ডিংয়ের সাথে বিল্ডিংগুলি মুদ্রিত হয়।