Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 查找为给定字符集存储的单词_String_Algorithm - Fatal编程技术网

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

String 查找为给定字符集存储的单词,string,algorithm,String,Algorithm,我在一次采访中被问到这个问题。我被赋予了字符(比如字符数组strAlphabets:)'t'u'v'm'n'o'和'p',我必须读出所有可能的单词,其中包含一个、两个或所有字符。为此,我还被要求存储一些可能的单词,其中包含一个、两个……或者所有字符,无论我想要什么结构 首先,我应该存储一些单词,如moon、top、pot、no、vot等。。。 然后,如果用户输入't''p'和'o',那么我应该从我已经存储的单词中输出“top”和“pot” 你知道如何实现吗?像这样?(请不要评论任何语法错误,将其

我在一次采访中被问到这个问题。我被赋予了字符(比如字符数组strAlphabets:)'t'u'v'm'n'o'和'p',我必须读出所有可能的单词,其中包含一个、两个或所有字符。为此,我还被要求存储一些可能的单词,其中包含一个、两个……或者所有字符,无论我想要什么结构

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

你知道如何实现吗?

像这样?(请不要评论任何语法错误,将其视为伪代码)


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

为了确保我完全理解您的问题:您事先有单词列表,然后会得到一组字符。然后,您需要查找列表中至少使用一个给定字符的所有单词。这是正确的吗?不。这些不是排列,甚至不是任何长度的变化,因为每个字符可以出现多次。从chars构造“单词”是一种非常简单的语法,可以创建无限多的单词。因此,创建所有单词,然后检查所创建的单词是否与列表匹配将不会有帮助
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');
}