Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมจัดเรียงช่องว่างระหว่างคำใน Python . ใหม่


สมมติว่าเรามีสตริงที่มีคำบางคำอยู่ในช่องว่างจำนวนหนึ่ง แต่ละคำคั่นด้วยช่องว่างอย่างน้อยหนึ่งช่อง เราต้องจัดเรียงช่องว่างใหม่เพื่อให้มีจำนวนช่องว่างเท่ากันระหว่างคำที่อยู่ติดกันทุกคู่และจำนวนช่องว่างระหว่างแต่ละคำจะถูกขยายให้ใหญ่สุด หากเราไม่สามารถแจกจ่ายช่องว่างทั้งหมดเท่าๆ กัน เราสามารถวางช่องว่างเพิ่มเติมไว้ที่ส่วนท้ายได้

ดังนั้น หากอินพุตเป็น 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 "