ধরুন আমাদের কিছু শব্দ সহ একটি স্ট্রিং s আছে যা কিছু সংখ্যক স্থানের মধ্যে স্থাপন করা হয়েছে। প্রতিটি শব্দ অন্তত একটি স্থান দ্বারা পৃথক করা হয়. আমাদের স্পেসগুলিকে পুনর্বিন্যাস করতে হবে যাতে প্রতি জোড়া সন্নিহিত শব্দের মধ্যে একই সংখ্যক শূন্যস্থান থাকে এবং প্রতিটি শব্দের মধ্যে শূন্যস্থানের সংখ্যা সর্বাধিক হয়। যদি আমরা সমস্ত স্পেস সমানভাবে পুনঃবন্টন করতে না পারি, তাহলে আমরা অতিরিক্ত স্পেসগুলি শেষে রাখতে পারি৷
সুতরাং, যদি ইনপুটটি s ="আমি প্রোগ্রামিং ভালোবাসি" এর মত হয়, তাহলে আউটপুটটি হবে "আমি প্রোগ্রামিং ভালোবাসি", দেখুন স্পেসগুলি বিতরণ করা হয়েছে, শব্দগুলির মধ্যে, পাঁচটি স্পেস রয়েছে৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
res :=ফাঁকা স্ট্রিং
-
total_sp :=s
এ স্পেস সংখ্যা -
suff_sp_cnt :=total_sp
-
text_array :=s
থেকে শব্দের একটি তালিকা -
num_words :=text_array এর আকার
-
যদি num_words 1 এর মত হয়, তাহলে
-
res :=টেক্সট_অ্যারে[0] মোট_স্পেস সংখ্যার সাথে সংযুক্ত করুন
-
রিটার্ন রিটার্ন
-
-
sep_size :=মোট_sp এর ভাগফল /(সংখ্যা_শব্দ - 1)
-
sep :=সেপ_সাইজ স্পেস সংখ্যা
-
প্রতিটি i-এর জন্য text_array - 1, do
-
res :=res + i
-
res :=res + sep
-
suff_sp_cnt :=suff_sp_cnt - sep_size
-
-
suff_sp_cnt :=suff_sp_cnt + sep_size
-
res :=বাম এবং ডান থেকে অতিরিক্ত স্পেস সরান
-
res :=res concatenate suff_sp_cnt শেষে স্পেস সংখ্যা
-
রিটার্ন রিটার্ন
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(s): res = "" total_sp = s.count(" ") suff_sp_cnt = total_sp text_array = s.split() num_words = len(text_array) if num_words == 1: res = text_array[0] + total_sp * " " return res sep_size = total_sp // (num_words - 1) sep = sep_size * " " for i in text_array: res += i res += sep suff_sp_cnt -= sep_size suff_sp_cnt += sep_size res = res.strip() res += suff_sp_cnt * " " return res s = " I love programming " print(solve(s))
ইনপুট
" I love programming "
আউটপুট
"I love programming "