アナグラム署名キー
「listen」も「silent」も署名は「eilnst」です。文字をいつも同じ順に並べ替えるので、並べ方が違うだけの語は同じキーになります。アナグラムの仲間分けや、「Debit card」と「Bad credit」の照合に使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- listen
- 署名
- eilnst
- 長さ
- 6
- シグネチャの長さ
- 6
アナグラム署名とは、語や句に含まれる文字の多重集合を固定順で並べたものであり、並べ替えが異なっても同じキーを共有します。パズル解答者、辞書パイプライン、教室向けツールは、listen と silent をまとめたり、Debit card を Bad credit に対応付けたり、全順列を生成せずにアナグラム族を索引付けしたりするために、このキーを必要とします。
アナグラム署名とは何か、なぜ文字のソートが有効か
二つの文字列が互いにアナグラムであるとは、順序を無視して同じ文字を同じ回数使うことです。古典的な工学的手法は、各文字列をその多重集合を符号化する署名へ写像することです。文字を小文字化し、単語同士を照合するなら空白と句読点を落とし、残った文字を昇順に並べて連結します。
この変換のあと、listen と silent はどちらも eilnst になり、Debit card と Bad credit のような長い句も空白が消えると同じキーに収束します。文字の多重集合はソート済み列で完全に決まるため、素数因子の文字積、二十六の英字に限ったビットマスク、高価な順列生成器は不要です。
既定の大文字小文字折りたたみは、単語アナグラムの話し方に合います。Listen と silent が大文字だけで別グループになるべきではありません。グループ化と照合アルゴリズムが依拠する決定的キーだけを構築します。
ソートはロケール照合ではなく素の UTF-16 コード単位順なので、同じ文字列はランタイムやホストが違っても常に同じ署名になります。
活用例
辞書とワードゲームのグループ化
各語をソート文字署名で索引付けし、アナグラム検索が一回のハッシュマップまたはデータベース照会でグループ全体を返すようにします。
教室でのアナグラム確認
採点スクリプトごとに文字列を場当たり的にソートする代わりに、署名の一致で学習者の解答と目標句を比較します。
句のアナグラム照合
letters-only フィルタが空白を除き大文字小文字を折りたたんだあと、Debit card と Bad credit のような複数語の句を照合します。
よくある質問
listen と silent は同じ署名を共有しますか?
はい。 既定オプションではどちらも eilnst に写るため、signature 文字列の比較でグループ化や照合ができます。
空白や大文字は数に入りますか?
初期設定では入りません。文字だけを残し、先に小文字にそろえるので、「Debit card」と「Bad credit」は同じキーになります。空白や数字も含めてすべての文字を残す設定や、大文字と小文字を区別する設定も選べます。
単語の一覧をアナグラムの仲間ごとに分けるには?
各単語の署名を求め、署名ごとにまとめます。同じ仲間の語はすべて同じキーを持つので、並べ替えを一つも作らずに、1回の検索で仲間全体を取り出せます。
アクセント付きの文字やほかの文字体系にも使えますか?
使えます。アクセント付きのラテン文字、ギリシャ文字、キリル文字は署名に残り、文字だけを残す設定では数字や記号が除かれます。並べ方は固定なので、同じ文章からは常に同じキーができます。
空の文章を入れるとどうなりますか?
中身のないキーを作らず、分かりやすいメッセージで知らせます。一方、記号だけの文章は、文字だけを残す設定では空の署名になり、それもグループ分けのキーとして使えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/anagram-signature \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"listen"}'const res = await fetch("https://api.kit.forhosting.com/str/anagram-signature", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "listen"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/anagram-signature",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "listen"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/anagram-signature", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"listen"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"listen"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/anagram-signature", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "listen"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.anagram_signature",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本アナグラム署名機能は文字列を受け取り、任意で Unicode の文字だけを残して大文字小文字を折りたたみ、残った文字を安定な昇順に並べ、正規の署名文字列と長さフィールド、解決済みオプションを返します。空入力は hollow なキーを捏造せず invalid_input で失敗し、文字のみモードで句読点だけの袋は空の署名でもグループキーとして成功します。
アナグラム署名とは何か、なぜ文字のソートが有効か
letter クラスによる Unicode 文字フィルタは、アクセント付きラテン、ギリシャ、キリルが現れたとき署名に残し、既定の letters_only では数字と記号が落ちます。空白・数字・句読点まで含む厳密な文字袋が必要なときは letters_only を false にし、任意で case_sensitive を true にしてすべてのコード単位が参加するようにします。エンドポイントは言語的意味を主張せず、辞書定義を捏造せず、並べ替えを列挙しません。
入力契約、応答の形、エラー動作
true のときはソート前に Unicode 文字だけが残り、false のときは(任意で小文字化した)文字列のすべての文字が残ります。false のときは先に小文字化して混在ケースのアナグラムが同じキーを共有し、true のときは大文字小文字が保たれ、ソート済み署名で A と a が区別されます。複数語のアナグラム検索が必要なら独自のハッシュマップや DB インデックスとキーを組み合わせてください。必須フィールド text(署名にしたい空でない文字列)を含む JSON ボディを POST してください。スクリプトがよく使う名前を再利用できるよう、alias として input、string、value、content、s を受け付けます。任意の letters_only は既定 true で、lettersOnly、alpha_only、alphaOnly としても送れます。任意の case_sensitive は既定 false で、caseSensitive または sensitive としても送れます。text 欠落、空文字列、非文字列のオブジェクトや配列、非有限数は invalid_input と問題を名指すメッセージで失敗し、その検証失敗は課金されません。宣言された max_chars を超えるテキストも拒否されます。成功時、本体は元の text と length をエコーし、結合したソート済みキーを signature、フィルタ後のキー長を signature_length、解決済みブールを letters_only と case_sensitive、method を anagram_signature として報告します。例:既定で listen は signature eilnst、signature_length 六になります。本エンドポイントは署名だけを出し、辞書を走査せず候補語も返しません。
アナグラム署名 API が価値を生む場面
ワードゲームのバックエンドやクロスワードツールは、同じ文字を並べ替えた語が検索やリーダーボードで一つのバケツに入るよう、安定したグループキーを必要とします。教育プラットフォームは署名をオラクルとして使い、学習者が候補アナグラムを提出し、採点側は各クライアントでソートせず署名を比較します。検証失敗は残高を消費しません。商品名や曖昧なラベルを重複排除するデータ清掃パイプラインは、より重い類似度モデルの前に文字袋を安価な第一段として扱い、小さな parse API があれば Unicode 文字フィルタとソート順を言語ごとに再実装せずに済みます。実装は純粋な parse ティア A のため、成功した呼び出しは公開の基本料金 $0.002 のみで、モデルトークンも外向きネットワークも使いません。
技術的な質問
語のアナグラム署名をどう取得しますか?
空でないテキスト文字列を送ってください。既定(letters_only true、case_sensitive false)では API が文字を小文字化し、非文字を落とし、昇順に並べて signature を返します。
letters_only は何を制御しますか?
true(既定)のときはソート前に Unicode 文字だけが残り、空白・数字・句読点は落ちます。false のときはすべての文字が署名に参加します。
text が空だとどうなりますか?
タスクは invalid_input で失敗します。空入力は有効な署名要求ではなく、課金されません。
アナグラム署名ツールの料金は?
ブラウザツールは無料です。API リクエストは成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効な入力は課金されません。