def wrap_words(words, width):
words = tuple(words)
if type(width) is not int or not 1 <= width <= 80 or len(words) > 100:
raise ValueError("wrap.limit")
if any(type(w) is not str or not w or len(w) > width or any(c.isspace() for c in w) for w in words):
raise ValueError("wrap.word")
n = len(words)
costs, ends = [0] * (n+1), [0] * n
for i in range(n-1, -1, -1):
used, best = 0, None
for j in range(i, n):
used += len(words[j]) + (j > i)
if used > width:
break
cost = 0 if j == n-1 else (width-used)**2 + costs[j+1]
if best is None or cost < best:
best, ends[i] = cost, j+1
costs[i] = best
lines, i = [], 0
while i < n:
lines.append(" ".join(words[i:ends[i]]))
i = ends[i]
return lines
✳Chia tối đa 100 từ không có khoảng trắng thành dòng từ một đến 80 điểm mã, giảm tổng bình phương chỗ thừa trừ dòng cuối.
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
Kiểm tra trước khi áp dụng
So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
Mô hình
Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
Dự án
Kiểm tra đầu vào rỗng và các cách ngắt khác, từ chối từ rỗng hoặc quá dài mà không tuyên bố đo chiều rộng hiển thị của thiết bị đầu cuối.
def wrap_words(words, width):
words = tuple(words)
if type(width) is not int or not 1 <= width <= 80 or len(words) > 100:
raise ValueError("wrap.limit")
if any(type(w) is not str or not w or len(w) > width or any(c.isspace() for c in w) for w in words):
raise ValueError("wrap.word")
n = len(words)
costs, ends = [0] * (n+1), [0] * n
for i in range(n-1, -1, -1):
used, best = 0, None
for j in range(i, n):
used += len(words[j]) + (j > i)
if used > width:
break
cost = 0 if j == n-1 else (width-used)**2 + costs[j+1]
if best is None or cost < best:
best, ends[i] = cost, j+1
costs[i] = best
lines, i = [], 0
while i < n:
lines.append(" ".join(words[i:ends[i]]))
i = ends[i]
return lines
Không gian lập trình với AI
Đặt mục tiêu có thể rà soát cho thay đổi bố cục văn bản
LineCitrine cung cấp không gian lập trình trên Windows cho lập trình viên giải quyết quyết định định dạng đầu ra với mô hình AI kết nối. Yêu cầu bố cục dễ rà soát hơn khi nêu thế nào là kết quả tốt hơn. Mở thư mục dự án và đưa bộ định dạng, nơi sử dụng cùng đầu vào tiêu biểu vào cuộc trao đổi trước khi yêu cầu thay đổi.
Một ví dụ yêu cầu ngắt dòng văn bản thuần để tối thiểu hóa bình phương khoảng trống dư, đồng thời xử lý dòng cuối riêng. Xác định rõ từ được phép, giới hạn độ rộng và quy tắc chi phí. Yêu cầu mô hình so sánh các cách ngắt theo mục tiêu đó. Phân biệt độ dài theo điểm mã với độ rộng cột hiển thị để đề xuất không âm thầm hứa hẹn hành vi vượt biểu diễn đã chọn.
Rà soát sửa đổi gợi ý bằng các bố cục cạnh tranh, đầu vào rỗng và một từ vượt độ rộng chấp nhận. Chạy kiểm tra dự án và tính chi phí kỳ vọng cho các ví dụ nhỏ bạn chọn. Kết quả phải giữ nguyên từ và đạt mục tiêu đã nêu, không chỉ trông cân bằng trong một phông chữ. Bao gồm định dạng sử dụng kết quả nếu nó đặt thêm yêu cầu.
Điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ cung cấp kết nối mô hình của LineCitrine. Khi có mô hình AI không hạn chế, bạn có thể chọn bằng thông tin xác thực cần thiết. Mô hình và máy chủ quyết định hạn chế, giới hạn ngữ cảnh và hỗ trợ công cụ; mục tiêu bố cục vẫn là yêu cầu bạn định nghĩa và xác minh.
Câu hỏi về đề xuất ngắt dòng
Yêu cầu nên nói gì về dòng cuối?
Nêu liệu khoảng trống dư của nó có góp vào chi phí không. Mục tiêu minh họa loại trừ nó, điều có thể thay đổi cách ngắt ưu tiên. Đưa ví dụ nhỏ nơi lựa chọn này có ý nghĩa và so sánh đầu ra đề xuất với quy tắc chi phí bạn thực sự muốn.
Độ rộng điểm mã có thay cho độ rộng thiết bị đầu cuối được không?
Nhìn chung không. Dấu kết hợp và ký tự rộng có thể hiển thị khác số điểm mã của chúng. Ghi rõ phép đo trong quy ước. Nếu cột thiết bị đầu cuối quan trọng, xác định yêu cầu riêng đó và rà soát xử lý cần thiết trong môi trường hiển thị thực tế.
Làm sao rà soát tối ưu hóa mà không tin vào lời giải thích?
Dùng đầu vào nhỏ với vài lựa chọn ngắt cạnh tranh và tự tính chi phí kỳ vọng độc lập. Kiểm tra đề xuất chọn một phương án cực tiểu được phép theo quy tắc. Sau đó chạy dữ liệu kiểm thử dự án rộng hơn để tìm hành vi thay đổi ngoài các ví dụ.
Điều gì nên xảy ra với từ quá dài?
Nêu bộ định dạng từ chối, chia từ hay cho phép tràn. Ví dụ từ chối từ vượt độ rộng chấp nhận. Rà soát nhánh đó và mã gọi để sửa bố cục không âm thầm đưa vào biến đổi nội dung hoặc chính sách lỗi khác.