0
我一直在玩的想法,使腳本從我的語言給定的字符集生成2個字符的單詞。但是,由於我不想重新發明輪子,你知道C#公開提供的這種腳本嗎?如何有效地生成2個字符的單詞?
我一直在玩的想法,使腳本從我的語言給定的字符集生成2個字符的單詞。但是,由於我不想重新發明輪子,你知道C#公開提供的這種腳本嗎?如何有效地生成2個字符的單詞?
我不知道如果我理解正確你的問題,但是這可能幫助:
List<string> GetWords(IEnumberable<char> characters) {
char[] chars = characters.Distinct().ToArray();
List<string> words = new List<string>(chars.Length*chars.Length);
foreach (char i in chars)
foreach (char j in chars)
words.Add(i.ToString() + j.ToString());
return words;
}
你說的是發現可以從一組字符的任意組合進行真正的雙字詞?
在這種情況下,您需要編寫一個算法,可以從所提供的字母中找出所有可能的組合,並且對於每個組合,嘗試(反過來)對付一個IDictionary,它就像真正的實際字典兩個字母的單詞。
未經測試的代碼:
IDictionary<string, string> dictionary = GetRealTwoLetterWordDictionary();
char[] availableChars = new char[] { 'a', 's', 't' };
string[] combinations = GetAllCombinations(availableChars);
IList<string> results = new List<string>();
foreach (string combination in combinations)
{
if (dictionary.ContainsKey(combination)))
{
results.Add(combination);
}
string reversed = combination.Reverse();
if (dictionary.ContainsKey(reversed)))
{
results.Add(reversed);
}
}