ภาพรวม
บทความนี้แสดงวิธีการจัดรายการคำให้อยู่ในกรอบสี่เหลี่ยมผืนผ้า โดยแต่ละคำจะอยู่บรรทัดละหนึ่งคำ และมีขอบดอกจัน (*) ล้อมรอบ ความกว้างของกรอบจะขึ้นอยู่กับคำที่ยาวที่สุดในรายการ
ตัวอย่าง
อินพุต: ['hello', 'world', 'python', 'programming', 'nice']
เอาต์พุต:
*************** * hello * * world * * python * * programming * * nice * ***************
ขั้นตอนการแก้ปัญหา
- หาความยาวของคำที่ยาวที่สุด (
l) - สร้างเส้นขอบบนด้วยดอกจัน จำนวน
l + 4ตัว - วนลูปผ่านแต่ละคำ:
- เพิ่ม
*+ คำ + ช่องว่างให้เต็มความกว้าง (l - len(คำ) + 1) +*
- เพิ่ม
- เพิ่มเส้นขอบล่างเหมือนขอบบน
- คืนค่าสตริงที่จัดรูปแบบแล้ว
โค้ด 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))
การทำงาน
max(len(x) for x in words)หาความยาวสูงสุด (คำว่า "programming" ยาว 11 ตัวอักษร)- ขอบบน/ล่าง:
11 + 4 = 15ดอกจัน - แต่ละบรรทัด:
*+ คำ + ช่องว่างปรับขนาด +*
ผลลัพธ์
*************** * hello * * world * * python * * programming * * nice * ***************