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