ビートたけしのアナグラム #8

8以下、名無しにかわりましてVIPがお送りします:2025/12/07(日) 22:38:40.69 ID:8qu0EzG2

ダブりも消してOK

// 再帰関数(順列生成)
function getPermutations(str) {
if (str.length <= 1) return [str];
let results = [];
for (let i = 0; i < str.length; i++) {
let char = str[i];
let remaining = str.slice(0, i) + str.slice(i + 1);
for (let p of getPermutations(remaining)) {
results.push(char + p);
}
}
return results;
}

const target = "ビートたけし";

// 1. 全通り生成
const rawList = getPermutations(target);

// 2. Setを使って重複を削除
// [...new Set(配列)] という書き方でユニークな配列になります
const uniqueList = [...new Set(rawList)];

// 3. フィルタリング(NG文字チェック)
const invalid = [
"ー", "ん", "ン", "っ", "ッ",
"ぁ", "ぃ", "ぅ", "ぇ", "ぉ", "ァ", "ィ", "ゥ", "ェ", "ォ",
"ゃ", "ゅ", "ょ", "ゎ", "ャ", "ュ", "ョ", "ヮ", "ヵ", "ヶ"
];
const filtered = uniqueList.filter(name => !invalid.includes(name[0]));

// 結果表示
console.log(`生成数: ${rawList.length} -> 重複排除: ${uniqueList.length} -> フィルタ後: ${filtered.length}`);
console.log(filtered.join("\n"));


スパムを通報

このレスがスパム・荒らしである場合は以下のボタンをクリックして通報してください。
(同意できない意見などに反対票を投じる機能ではありません)
通報

このスレッドを全て表示


レスを書き込む