【发布时间】:2020-03-04 16:08:33
【问题描述】:
检查列表中的字符串是否可以由同一列表中的元素串联形成
例如:
输入列表 -
{ best, rockstar, star, guide, bestguide, rock }
输出:-
rockstar -> rock, star
bestguide -> best, guide
这里的“摇滚明星”可以用摇滚和明星组成。类似地,“bestguide”可以通过连接“best”和“guide”来形成。
到目前为止我的解决方案-通过相互连接来创建所有字符串组合(2 个字符串在一起,3 个字符串在一起等等)并存储在地图中。
地图结构如下
Map<String, List<String>>
{rockstar : [rock, star], ....}
现在检查只是遍历原始列表并检查地图。如果找到它,那么它是一种可能的解决方案。
寻找具有更好时间/空间复杂度的更好解决方案
【问题讨论】:
-
列表大小是多少?
-
它可能非常大。您可以考虑 1
-
你肯定需要一个递归解决方案。
-
您需要所有解决方案还是只需要第一个?
-
全部解法,2串、3串、4串等。
标签: java arrays string algorithm