给定一个用空格分隔的字符串和多个字典,是否可以解析该字符串以确定其满足的模式?模式是固定的,但字符串中的术语数可以更改。例如这些是一些模式
{
best [food]
best [food] [city],
best [cuisine] [city],
best [cuisine] [food] [city],
...
}
输入可能是
best ice cream
best pizza los angeles
best pad thai atlanta
best italian gelato boca raton
best indian key west
best key lime pie indian wells
输出是将它们分类为模式
输入中的数字或术语有所不同,并且前置词是固定的。每个字典很大(数千个而不是数百万个),但是存储每种可能的组合都不节省空间。
我面临的问题是,在5个句子中,我不知道食物中有3个术语,城市中是否有1个术语,每个食物有2个术语,还是只有4个食物。但是,我确实知道,如果有一个城市在其中,它总是在尽头。
是否有0(N)的方法可以做到这一点,其中N是项数-考虑到字典查找为O(1)。尝试或动态编程会对此有所帮助吗?与其寻找方法,不如寻找解决方案。我认为这实质上就是搜索引擎的工作。