NNeedleThyme
AIコーディングワークスペース

最小被覆部分文字列

各1024コードポイント以下の2つの文字列から必要な文字数を満たす最短部分文字列を探してください。

● ● ●NeedleThyme●
ワークフロー · 最小被覆部分文字列 ×
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]]
✳最小被覆部分文字列
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
プロジェクト
空の要件と不一致を試し、Unicodeを正規化せず同じ長さなら最も左を選んでください。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
ワークフロー

最小被覆部分文字列

ワークフロー ↗
ワークフロー
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]]
AIコーディングワークスペース

テキスト機能が守るべき選択規則を説明する

テキスト機能は、望む結果を正確に示すと変更しやすくなります。NeedleThymeはプロジェクトファイルと共に要件を作るWindows向けAIコーディング環境です。入力、返す断片に含めるべき内容、アプリケーションでの使い方を説明してください。異なる規則を提案する前に、現在の選択コードを接続したアシスタントに確認させます。

covering-windowの例は、必要な文字を重複分も含めて持つ短い断片を探す具体的な作業です。結果がない場合と有効な空の結果を呼び出し側がどう区別するか、同等の候補をどう扱うかのレビューを依頼できます。その判断を開発中の機能に結び付けてください。実装が簡潔なだけでは、表示結果が意図した意味になるとは言えません。

対応するOpenAI互換またはAnthropicのエンドポイント経由で、利用可能な無検閲AIモデルを接続し、必要なら認証情報を提供します。コンテキスト上限、ツール、制限は選択したモデルとサーバーに依存します。編集案をレビューし、呼び出し元の機能を通して代表的な断片をテストしてください。別途稼働するローカルのモデルサーバーは推論の接続先を定めますが、すべての接続ツールやサービスをローカルにするわけではありません。

返されるテキスト断片に関する質問

重複した必要文字はどう説明すべきですか?

出現回数分が必要なのか、存在するだけでよいのかを示します。2つの規則を区別できる短い例を提示してください。アシスタントは機能名から推測せず、意図した動作に照らして既存コードをレビューできます。

条件を満たす最短の断片が複数ある場合は?

安定した出力が必要なら同点時の規則を選び、実装が従うか確認します。同点の例をプロジェクトテストに含めてください。長さの要件を満たしても、利用者には予測できない変化になる場合があります。

一致なしと空の要件を区別するのはなぜですか?

インターフェースのメッセージや後続の処理が異なる場合があるためです。各呼び出し側が期待する表現を指定し、その使い方を確認してください。返された値を解釈する機能をレビューせずに、補助関数の戻り値の規約を変えないようにします。

NeedleThymeは完全なテキスト検索インターフェースを作れますか?

必要なプロジェクトコードをこの環境で開発できますが、この例で扱うのは1つの選択作業だけです。追加のインターフェース動作を別途説明し、提案ファイルをレビューして、自分のアプリケーション環境で統合した機能を検証してください。

Windows版をダウンロード ↗

NeedleThyme · 更新日 2026-10-25