Sous-chaînes minimales de couverture
Trouve la sous-chaîne la plus courte couvrant les quantités requises dans deux textes d’au plus 1024 points de code.
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]]- Modèles
- Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
- Projet
- Teste exigences vides et résultat absent, retiens le premier ex æquo sans normalisation Unicode.
- Vérifiez avant d’appliquer
- Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
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]]Décrivez la règle de sélection que votre fonction de texte doit respecter
Une fonction textuelle devient plus facile à modifier quand le résultat désiré est précis. NeedleThyme offre un espace de programmation avec IA sous Windows pour développer ces exigences à côté des fichiers du projet. Décrivez l’entrée, le contenu obligatoire d’un fragment renvoyé et son usage dans l’application. Demandez à l’assistant connecté d’examiner le code de sélection actuel avant de proposer une autre règle.
L’exemple de fenêtre couvrante fournit une tâche concrète : trouver un fragment court contenant les caractères requis, y compris les répétitions exigées. Vous pouvez demander d’examiner comment l’appelant distingue une absence de résultat d’un résultat vide valide et comment les candidats égaux sont traités. Reliez ces décisions à la fonction développée. Une implémentation compacte ne prouve pas à elle seule que le résultat visible a le sens voulu.
Connectez un modèle d’IA sans censure disponible via un point de terminaison compatible OpenAI ou Anthropic pris en charge, avec les identifiants requis. Les limites de contexte, les outils et les restrictions dépendent du modèle et du serveur sélectionnés. Examinez les modifications et testez des fragments représentatifs via la fonction appelante. Un serveur local de modèle fonctionnant séparément définit la connexion d’inférence, mais ne rend pas locaux tous les outils ou services connectés.
Questions sur le fragment de texte renvoyé
Comment décrire les caractères requis répétés ?
Précisez si chaque occurrence doit être représentée ou si la seule présence suffit. Fournissez un court exemple distinguant les deux règles. L’assistant pourra examiner le code existant selon le comportement voulu plutôt que deviner à partir du nom de la fonction.
Et si plusieurs fragments les plus courts conviennent ?
Choisissez une règle de départage si l’application exige une sortie stable, puis vérifiez que l’implémentation la suit. Incluez des égalités dans les tests du projet. Un résultat peut respecter l’exigence de longueur tout en changeant de façon imprévisible pour l’utilisateur.
Pourquoi distinguer absence de correspondance et exigence vide ?
Ces cas peuvent appeler des messages d’interface ou des actions ultérieures différents. Précisez la représentation attendue par chaque appelant et examinez son usage. Ne changez pas la convention de retour sans examiner la fonction qui interprète la valeur renvoyée.
NeedleThyme construira-t-il une interface complète de recherche textuelle ?
Vous pouvez utiliser cet espace pour développer le code nécessaire, mais l’exemple n’établit qu’une tâche de sélection. Décrivez séparément les autres comportements d’interface, examinez les fichiers proposés et vérifiez la fonction intégrée dans votre environnement applicatif.
NeedleThyme · Mis à jour 2026-10-25