একটি স্ট্রিং s দেওয়া আছে যাতে শব্দগুলো কিছু স্পেস দিয়ে আলাদা করা আছে। প্রতিটি শব্দ কমপক্ষে একটি স্পেস দিয়ে আলাদা। স্পেসগুলো পুনর্বিন্যাস করতে হবে যাতে প্রতিটি আডজাসেন্ট শব্দের মাঝপথে সমান সংখ্যক স্পেস থাকে এবং 스페স সংখ্যা সর্বোচ্চ হয়। একসাথে বাঁট না পারলে বাকি স্পেসগুলো শেষে রাখুন।
ইনপুট: s = " I love programming " → আউটপুট: "I love programming "। শব্দগুলোর মাঝপথে ৫টি করে স্পেস।
সমাধানের ধাপসমূহ
total_sp = s-এ স্পেসের সংখ্যা
text_array = s.split() (শব্দগুলো)
num_words = len(text_array)
যদি num_words == 1: শব্দ + সব স্পেস রিটার্ন করুন
sep_size = total_sp // (num_words - 1)
sep = " " × sep_size
শব্দগুলো sep দিয়ে জড়ুন, শেষে বাকি স্পেস যোগ করুন
উদাহরণ (Python)
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 "