-1

あるインタビューでこの質問をされました。文字が与えられました(たとえば、char array strAlphabets :)'t''u''v''m''n''o'および'p'であり、可能なすべての単語を1つ、2つ、またはすべてで読み取る必要がありますその文字。このために、私はまた、私が望む構造で最初に1つ、2つ、またはすべての文字を含むいくつかの可能な単語を保存するように求められました。

たとえば、最初に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 に答える