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

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

กำหนด String s มีคำวางอยู่ระหว่าง Space จำนวนหนึ่ง คั่นด้วย Space อย่างน้อย 1 ต้องจัดเรียง Space ใหม่ ให้ Space ระหว่างคำติดกันเท่ากันทุกคู่ และเพียบที่สุด หากแจกไม่หมด ให้ Space เหลือวางท้ายสุด

Input: s = " I love programming " → Output: "I love programming " (Space ระหว่างคำ = 5 Space)

ขั้นตอนการแก้ปัญหา

  • res := Empty String
  • total_sp := จำนวน Space ใน s
  • suff_sp_cnt := total_sp
  • text_array := List ของคำจาก s (split)
  • num_words := ขนาด text_array
  • ถ้า num_words == 1: res = text_array[0] + total_sp spaces, return res
  • sep_size := total_sp // (num_words - 1)
  • sep := sep_size spaces
  • Loop แต่ละคำใน text_array: res += คำ + sep, suff_sp_cnt -= sep_size
  • suff_sp_cnt += sep_size (เพราะ Loop เพิ่ม sep ไป 1 ครั้งเกิน)
  • res = res.strip() (ตัด Space หน้า/หลัง)
  • res += suff_sp_cnt spaces ท้ายสุด
  • Return 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))

Input

" I love programming "

Output

"I love programming "