在一次采访中我被问到了这个问题。我被赋予了角色(让我们说char array strAlphabets :)'t''u''v''m''''o'和'p'我必须用一,二或全部读出所有可能的单词它的特点。为此我还被要求存储一些可能的单词,其中包含一个,两个......或者所有字符,无论我想要什么样的结构。
E.g。首先,我应该存储一些词,如月亮,顶部,锅,不,投票等... 然后,如果用户给出't''p'和'o'作为输入,那么我应该从我已经存储的单词输出“top”和“pot”。
任何想法如何实现这个?
答案 0 :(得分:1)
喜欢这个? (请不要评论任何语法错误,将其视为伪代码)
bool IsAWord(string word, char[] alphabet)
{
foreach(char c in word)
if (alphabet.indexof(c)==-1)
return false;
return true;
}
void SolveThePuzzle (string[] words, char[] alphabet)
{
foreach (string word in words)
if (IsAWord(word,alphabet))
Console.Writeln(word+' is a word');
}
答案 1 :(得分:-1)
你必须要有这样算法的字典。在生成所有可能的排列(或其中一部分)后,您必须使用此词典。