मान लीजिए कि हमारे पास कुछ शब्दों के साथ एक स्ट्रिंग है जो कुछ रिक्त स्थान के बीच रखी गई है। प्रत्येक शब्द कम से कम एक स्थान से अलग होते हैं। हमें रिक्त स्थान को पुनर्व्यवस्थित करना होगा ताकि आसन्न शब्दों के प्रत्येक जोड़े के बीच समान संख्या में रिक्त स्थान हों और प्रत्येक शब्द के बीच रिक्त स्थान की संख्या अधिकतम हो। यदि हम सभी रिक्त स्थान को समान रूप से पुनर्वितरित करने में असमर्थ हैं, तो हम अतिरिक्त रिक्त स्थान को अंत में रख सकते हैं।
इसलिए, यदि इनपुट एस ="आई लव प्रोग्रामिंग" जैसा है, तो आउटपुट "आई लव प्रोग्रामिंग" होगा, देखें कि रिक्त स्थान वितरित किए गए हैं, शब्दों के बीच, पांच रिक्त स्थान हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रेस :=खाली स्ट्रिंग
-
Total_sp :=s में रिक्तियों की संख्या
-
suff_sp_cnt :=Total_sp
-
text_array :=शब्दों की सूची
-
num_words :=text_array का आकार
-
अगर num_words 1 के समान है, तो
-
res :=text_array[0] कुल_एसपी रिक्तियों की संख्या के साथ संयोजित करें
-
रिटर्न रेस
-
-
sep_size :=Total_sp का भागफल /(num_words - 1)
-
सितम्बर :=sep_size रिक्तियों की संख्या
-
टेक्स्ट_एरे -1 में प्रत्येक i के लिए, करें
-
रेस :=रेस + आई
-
रेस :=रेस + सितंबर
-
suff_sp_cnt :=suff_sp_cnt - sep_size
-
-
suff_sp_cnt :=suff_sp_cnt + sep_size
-
res :=बाएँ और दाएँ से अतिरिक्त स्थान हटाएँ
-
res :=अंत में 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 "