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