-1

我在一次采访中被问到这个问题。我得到了字符(假设是 char 数组 strAlphabets:) 't' 'u' 'v' 'm' 'n' 'o' 和 'p' 我必须用一个、两个或全部读出所有可能的单词它的特征。为此,我还被要求以我想要的任何结构存储一些可能的单词,其中包含一个、两个……或所有字符。

例如,首先我应该存储一些单词,如moon、top、pot、no、vot 等......然后如果用户给出't'、'p'和'o'作为输入,那么我应该输出“top”和“pot”我已经存储的单词。

知道如何实现吗?

4

2 回答 2

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');
}
于 2012-12-30T20:24:15.120 回答
-1

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

于 2012-12-30T21:18:06.037 回答