LLineCitrine
Produkt

Funkcje programu · Łamanie wierszy o minimalnej nierówności

01

Porównaj w LineCitrine punkty podziału według kosztu pozostałych wierszy, nie uznając najwcześniejszego dopasowania za optymalne.

01

Modele

Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.

02

Projekt

Wybierz folder i poproś asystenta o przeczytanie odpowiednich plików przed ich zmianą. Określ cel oraz granice zadania.

03

Zmiany

Sprawdzaj zmiany i wyniki poleceń. Uruchom testy projektu przed zaakceptowaniem rezultatu; wygenerowany kod nie jest automatycznie przetestowany.

Łamanie wierszy o minimalnej nierówności

● ● ●LineCitrine●
Sposoby pracy · Łamanie wierszy o minimalnej nierówności ×
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
✳Podziel najwyżej 100 słów bez białych znaków na wiersze od jednego do 80 punktów kodowych, minimalizując kwadrat wolnego miejsca poza ostatnim wierszem.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
Środowisko programowania z AI

Tutaj zaczyna się kolejny pomysł.

Pobierz dla Windows ↗