是否可以使用给定子字符串的任意组合来给定SuperString

时间:2018-11-03 17:36:27

标签: java algorithm combinatorics

假设我们有输入子字符串-“ john”“ mathew”“ carl” 我们必须找到可以使用这些子字符串形成的超级字符串 输出应为“是”或“否”

例如-

子字符串- 约翰 马修 卡尔

超级字符串1- johncarl(john和carl都在子字符串中) 输出是

超级字符串2-carlmathewjohn(john,mathew和carl都在子字符串中) 输出是

超级字符串3-mohammedjohn(子字符串中不包含穆罕默德) 输出否

超级字符串4-johnadbul(子字符串中不包含abdul) 输出否

超级弦乐五强 输出是

超级字符串6-carlmathewjohnrohit(子字符串中没有rohit) 输出否

1 个答案:

答案 0 :(得分:0)

您可以使用地图(通常是单次通过)来完成此操作。

字符串是否以任何可用单词开头,如果没有,则停止。

如果是,请删除单词并继续直到使用完字符串为止。否则你必须停下来。唯一的复杂性是,当这里要消耗多个可能的单词时,您需要全部尝试。为此,您需要递归和一些回溯。