Najkrótsze podciągi pokrywające
Znajdź najkrótszy podciąg ze wszystkimi wymaganymi licznościami w dwóch tekstach do 1024 punktów kodowych.
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
- 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.
- Projekt
- Sprawdź puste wymagania i brak wyniku, wybierz najwcześniejszy remis bez normalizacji Unicode.
- Sprawdź przed zastosowaniem
- Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
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]]Opisz regułę wyboru, której musi przestrzegać funkcja tekstowa
Funkcję tekstową łatwiej zmieniać, gdy pożądany wynik jest precyzyjnie określony. NeedleThyme zapewnia środowisko programowania z AI dla Windows do rozwijania tych wymagań obok plików projektu. Opisz wejście, treść wymaganą w zwracanym fragmencie i sposób użycia go przez aplikację. Przed zaproponowaniem innej reguły poproś podłączonego asystenta o analizę obecnego kodu wyboru.
Przykład okna pokrywającego wymagane znaki przedstawia konkretne zadanie: znaleźć krótki fragment zawierający wymagane znaki, również te wymagane wielokrotnie. Możesz zlecić przegląd rozróżniania przez kod wywołujący braku wyniku od poprawnego pustego wyniku oraz obsługi równorzędnych kandydatów. Powiąż te decyzje z tworzoną funkcją. Sama zwarta implementacja nie dowodzi, że widoczny wynik ma zamierzone znaczenie.
Podłącz dostępny model AI bez cenzury przez obsługiwany punkt końcowy zgodny z OpenAI lub punkt Anthropic, podając dane uwierzytelniające w razie potrzeby. Limity kontekstu, narzędzia i ograniczenia zależą od wybranego modelu i serwera. Przejrzyj proponowane zmiany i przetestuj reprezentatywne fragmenty przez funkcję wywołującą. Osobno uruchomiony lokalny serwer modelu określa połączenie wnioskowania, ale nie sprawia, że wszystkie podłączone narzędzia i usługi działają lokalnie.
Pytania o zwracany fragment tekstu
Jak opisać wielokrotnie wymagane znaki?
Określ, czy każde wystąpienie musi być reprezentowane, czy wystarczy sama obecność znaku. Podaj krótki przykład rozróżniający obie reguły. Asystent może wtedy ocenić obecny kod względem zamierzonego zachowania, zamiast zgadywać na podstawie nazwy funkcji.
Co jeśli kwalifikuje się więcej niż jeden najkrótszy fragment?
Wybierz regułę rozstrzygania remisów, jeśli aplikacja potrzebuje stabilnego wyniku, i sprawdź, czy implementacja jej przestrzega. Uwzględnij remisy w testach projektu. Wynik może spełniać wymaganie długości, a mimo to zmieniać się nieprzewidywalnie z perspektywy użytkownika.
Dlaczego rozróżniać brak dopasowania i puste wymaganie?
Te przypadki mogą oznaczać różne komunikaty interfejsu lub dalsze działania. Określ reprezentację oczekiwaną przez każde wywołanie i sprawdź jej użycie. Unikaj zmiany konwencji wyniku funkcji bez przeglądu funkcjonalności interpretującej zwróconą wartość.
Czy NeedleThyme zbuduje kompletny interfejs wyszukiwania tekstu?
Możesz używać środowiska do rozwijania niezbędnego kodu projektu, ale przykład określa tylko jedno zadanie wyboru. Osobno opisz dodatkowe zachowanie interfejsu, przejrzyj proponowane pliki i zweryfikuj zintegrowaną funkcję we własnym środowisku aplikacji.
NeedleThyme · Zaktualizowano 2026-10-25