可能重复:
方形子序列
我一直在尝试解决interviewstreet.com 上的“ Square Subsequences ”问题:
如果一个字符串可以通过连接相同字符串的两个副本获得,则该字符串称为方字符串。例如,“abab”、“aa”是方串,而“aaa”、“abba”则不是。
给定一个字符串,该字符串有多少个子序列是方串?
我尝试制定一个 DP 解决方案,但这个约束似乎无法规避:S will have at most 200 lowercase characters (a-z)
.
据我所知,找到长度列表的所有子序列n
是O(2^n)
,一旦n
大于 30 就不再可行。
n
如果是 200 ,是否真的可以系统地检查所有解决方案?我该如何处理?