কম্পিউটার টিউটোরিয়াল

পাইথনে ওয়ার্ডগুলো ভার্টিক্যালি প্রিন্ট করা


মনে করুন আমাদের একটি স্ট্রিং s আছে। আমাদের s-এ প্রদর্শিত ক্রমে সকল ওয়ার্ড ভার্টিক্যালি খুঁজে বের করতে হবে। এখানে ওয়ার্ডগুলো একটি স্ট্রিং লিস্ট হিসেবে রিটার্ন করা হবে, প্রয়োজনে স্পেস দিয়ে পূরণ করতে হবে (ট্রেইলিং স্পেস অনুমোদিত নয়)। প্রতিটি ওয়ার্ড শুধু একটি কলামে থাকবে এবং একটি কলামে শুধু একটি ওয়ার্ড থাকবে। তাই ইনপুট স্ট্রিং যদি "HOW ARE YOU" হয়, তবে আউটপুট হবে ["HAY", "ORO", "WEU"]।

এটি সমাধান করতে আমরা নিচের ধাপগুলো ফলো করব:

  • s := স্পেস দিয়ে স্ট্রিং স্প্লিট করে একটি লিস্ট বানান, একটি খালি অ্যারে x, row = 0 সেট করুন।

  • s-এর প্রতিটি ওয়ার্ড i জন্য, row := max(row, len(i)) সেট করুন।

  • col := len(s)

  • রো সাইজের একটি অ্যারে বানান এবং খালি স্ট্রিং দিয়ে পূরণ করুন।

  • for I in range 0 to col - 1

    • j := 0

    • while j < len(s[i])

      • while i - len(ans[j]) >= 1, ans[j] := ans[j] + " " করুন।

      • ans[j] := ans[j] + s[i][j]

      • j ১ বাড়ান।

  • return ans

উদাহরণ (Python)

নিচের ইমপ্লিমেন্টেশন দেখুন ভালো বুঝতে।

class Solution(object):
    def printVertically(self, s):
        s = s.split(" ")
        x = []
        row = 0
        for i in s:
            row = max(row, len(i))
        col = len(s)
        ans = ["" for i in range(row)]
        j = 0
        for i in range(col):
            j = 0
            while j < len(s[i]):
                #print(j, i)
                while i - len(ans[j]) >= 1:
                    ans[j] += " "
                ans[j] += s[i][j]
                j += 1
        return ans

ob = Solution()
print(ob.printVertically("HOW ARE YOU"))
print(ob.printVertically("TO BE OR NOT TO BE"))

ইনপুট

"HOW ARE YOU"
"TO BE OR NOT TO BE"

আউটপুট

["HAY","ORO","WEU"]
["TBONTB","OEROOE"," T"]

  1. পাইথনে প্যাটার্ন প্রিন্ট করার পদ্ধতি

  2. পাইথনে স্ট্রিং-এ জোড় দৈর্ঘ্যের শব্দ প্রিন্ট করা

  3. পাইথন ক্লোজার (Closures): নেস্টেড ফাংশন এবং এনক্যাপসুলেশনের ধারণা

  4. Python-এ লিস্ট প্রিন্ট করা