找到为给定字符集存储的单词

时间:2012-12-30 20:08:33

标签: string algorithm

在一次采访中我被问到了这个问题。我被赋予了角色(让我们说char array strAlphabets :)'t''u''v''m''''o'和'p'我必须用一,二或全部读出所有可能的单词它的特点。为此我还被要求存储一些可能的单词,其中包含一个,两个......或者所有字符,无论我想要什么样的结构。

E.g。首先,我应该存储一些词,如月亮,顶部,锅,不,投票等... 然后,如果用户给出't''p'和'o'作为输入,那么我应该从我已经存储的单词输出“top”和“pot”。

任何想法如何实现这个?

2 个答案:

答案 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)

你必须要有这样算法的字典。在生成所有可能的排列(或其中一部分)后,您必须使用此词典。