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

Căn lề khung chữ trong Python

Giả sử chúng ta có một danh sách các từ, cần khung lại chúng trong một vùng hình chữ nhật, dòng theo dòng. Xem ví dụ dưới đây để hiểu rõ hơn.

Nếu đầu vào là ['hello', 'world', 'python', 'programming', 'nice'], đầu ra sẽ là:

***************
* hello     *
* world     *
* python    *
* programming *
* nice      *
***************

Các bước giải quyết

  • l := độ dài của từ dài nhất trong mảng
  • st := chuỗi dấu sao (*) lặp lại (l + 4) lần
  • Với mỗi từ i trong danh sách:
    • st := nối thêm '* ' + i + ' ' * (l - len(i) + 1) + '*'
  • st := nối thêm chuỗi dấu sao (l + 4) lần vào cuối
  • Trả về st

Ví dụ mã Python

class Solution:
    def solve(self, words):
        l = max(len(x) for x in words)
        st = '*' * (l + 4) + '\n'
        for i in words:
            st += '* ' + i + ' ' * (l - len(i) + 1) + '*\n'
        return st + '*' * (l + 4)

ob = Solution()
words = ['hello', 'world', 'python', 'programming', 'nice']
print(ob.solve(words))

Đầu vào

['hello', 'world', 'python', 'programming', 'nice']

Đầu ra

***************
* hello     *
* world     *
* python    *
* programming *
* nice      *
***************