Subșiruri minime de acoperire
Găsește subșirul minim care acoperă numerele cerute în două texte de maximum 1024 puncte de cod.
from collections import Counter
def covering_window(text, required):
if type(text) is not str or type(required) is not str or max(len(text), len(required)) > 1024:
raise ValueError("window.input")
if not required:
return ""
need, missing, left, best = Counter(required), len(required), 0, None
for right, char in enumerate(text, 1):
if need[char] > 0:
missing -= 1
need[char] -= 1
while missing == 0:
if best is None or right-left < best[1]-best[0]:
best = (left, right)
old = text[left]
need[old] += 1
if need[old] > 0:
missing += 1
left += 1
return "" if best is None else text[best[0]:best[1]]- Modele
- Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
- Proiect
- Testează cerințe goale și rezultate absente, alege egalitatea cea mai din stânga fără normalizare Unicode.
- Verifică înainte de aplicare
- Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
from collections import Counter
def covering_window(text, required):
if type(text) is not str or type(required) is not str or max(len(text), len(required)) > 1024:
raise ValueError("window.input")
if not required:
return ""
need, missing, left, best = Counter(required), len(required), 0, None
for right, char in enumerate(text, 1):
if need[char] > 0:
missing -= 1
need[char] -= 1
while missing == 0:
if best is None or right-left < best[1]-best[0]:
best = (left, right)
old = text[left]
need[old] += 1
if need[old] > 0:
missing += 1
left += 1
return "" if best is None else text[best[0]:best[1]]Descrie regula de selecție pe care trebuie să o respecte funcționalitatea de text
O funcționalitate de text devine mai ușor de modificat când rezultatul dorit este precizat exact. NeedleThyme îți oferă un spațiu de programare cu IA pentru Windows în care poți dezvolta aceste cerințe alături de fișierele proiectului. Descrie intrarea, conținutul obligatoriu al fragmentului returnat și modul în care îl folosește aplicația. Cere asistentului conectat să inspecteze codul de selecție actual înainte de a propune altă regulă.
Exemplul ferestrei de acoperire oferă o sarcină concretă: găsirea unui fragment scurt care conține caracterele necesare, inclusiv cerințele repetate. Poți cere revizuirea modului în care apelantul distinge un rezultat absent de unul vid valid și a tratării candidaților egali. Păstrează aceste decizii legate de funcționalitatea construită. O implementare compactă singură nu stabilește că rezultatul vizibil are semnificația dorită.
Conectează un model IA fără cenzură disponibil printr-un endpoint acceptat compatibil cu OpenAI sau Anthropic, furnizând date de autentificare dacă sunt necesare. Limitele de context, instrumentele și restricțiile depind de modelul și serverul selectate. Revizuiește modificările propuse și testează fragmente reprezentative prin funcționalitatea apelantă. Un server local de modele care rulează separat definește conexiunea de inferență, dar nu face ca toate instrumentele sau serviciile conectate să fie locale.
Întrebări despre fragmentul de text returnat
Cum trebuie descrise caracterele necesare repetate?
Precizează dacă fiecare apariție trebuie reprezentată sau dacă simpla prezență este suficientă. Furnizează un exemplu scurt care distinge cele două reguli. Asistentul poate apoi revizui codul existent în raport cu comportamentul dorit, fără a ghici după numele funcționalității.
Ce se întâmplă dacă se califică mai multe fragmente de lungime minimă?
Alege o regulă pentru egalități dacă aplicația necesită rezultate stabile și verifică dacă implementarea o respectă. Include exemple cu egalități în testele proiectului. Un rezultat poate satisface cerința lungimii și totuși varia imprevizibil din perspectiva utilizatorului.
De ce să disting lipsa unei potriviri de o cerință vidă?
Aceste cazuri pot implica mesaje diferite în interfață sau acțiuni ulterioare diferite. Precizează reprezentarea așteptată de fiecare apelant și inspectează utilizarea ei. Evită schimbarea convenției de returnare a funcției auxiliare fără a revizui funcționalitatea care interpretează valoarea returnată.
Va construi NeedleThyme o interfață completă de căutare în text?
Poți folosi spațiul de lucru pentru a dezvolta codul necesar al proiectului, dar exemplul stabilește doar o sarcină de selecție. Descrie separat comportamentele suplimentare ale interfeței, revizuiește fișierele propuse și verifică funcționalitatea integrată în propriul mediu al aplicației.
NeedleThyme · Actualizat 2026-10-25