Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình sắp xếp lại khoảng trắng giữa từ trong Python

Giả sử ta có chuỗi s với các từ xen kẽ khoảng trắng. Mỗi từ cách nhau ít nhất một khoảng trắng. Sắp xếp lại khoảng trắng sao cho số khoảng trắng giữa mọi cặp từ liền kề bằng nhau và tối đa. Nếu không chia đều được, đặt khoảng trắng dư vào cuối.

Ví dụ: s = " I love programming ", kết quả "I love programming " (5 khoảng trắng giữa các từ).

Giải thuật

  1. res := "", total_sp := s.count(" ")
  2. suff_sp_cnt := total_sp
  3. text_array := s.split(), num_words := len(text_array)
  4. Nếu num_words == 1: trả về text_array[0] + " " * total_sp
  5. sep_size := total_sp // (num_words - 1), sep := " " * sep_size
  6. Với mỗi từ i trong text_array:
    • res += i + sep
    • suff_sp_cnt -= sep_size
  7. suff_sp_cnt += sep_size
  8. res := res.strip()
  9. res += " " * suff_sp_cnt
  10. Trả về res

Ví dụ (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     "