মনে করুন আমাদের একটি স্ট্রিং 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 - 1j := 0while 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"]