สมมติว่าเรามีสตริงที่มีคำบางคำอยู่ในช่องว่างจำนวนหนึ่ง แต่ละคำคั่นด้วยช่องว่างอย่างน้อยหนึ่งช่อง เราต้องจัดเรียงช่องว่างใหม่เพื่อให้มีจำนวนช่องว่างเท่ากันระหว่างคำที่อยู่ติดกันทุกคู่และจำนวนช่องว่างระหว่างแต่ละคำจะถูกขยายให้ใหญ่สุด หากเราไม่สามารถแจกจ่ายช่องว่างทั้งหมดเท่าๆ กัน เราสามารถวางช่องว่างเพิ่มเติมไว้ที่ส่วนท้ายได้
ดังนั้น หากอินพุตเป็น s =" ฉันชอบเขียนโปรแกรม " ผลลัพธ์จะเป็น "ฉันชอบเขียนโปรแกรม" ดูช่องว่างที่กระจาย ระหว่างคำ มีช่องว่างห้าช่อง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
res :=สตริงว่าง
-
Total_sp :=จำนวนช่องว่างใน s
-
suff_sp_cnt :=total_sp
-
text_array :=รายการคำศัพท์จาก s
-
num_words :=ขนาดของ text_array
-
ถ้า num_words เหมือนกับ 1 แล้ว
-
res :=text_array[0] ต่อด้วยจำนวนช่องว่างทั้งหมด
-
ผลตอบแทน
-
-
sep_size :=ผลหารของ total_sp /(num_words - 1)
-
sep :=sep_size จำนวนช่องว่าง
-
สำหรับแต่ละ i ใน text_array - 1 ทำ
-
res :=res + ผม
-
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 ในตอนท้าย
-
ผลตอบแทน
ตัวอย่าง (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 "