【发布时间】:2016-09-11 15:46:02
【问题描述】:
我有这个任务:
让 x 是一些有限且固定的字母表上的字符串(想想英文字母表)。给定 一个整数 k 我们使用 x^k 表示通过连接 x 的 k 个副本获得的字符串。如果 x 是字符串 HELLO 然后是 x^3 是字符串 HELLOHELLOHELLO。 x 的重复是 x^k 的前缀 对于某个整数 k。因此,HELL 和 HELLOHELL 都是 你好。 两个字符串 x 和 y 的交错是通过改组重复获得的任何字符串 x 重复 y。例如 HELwoLOHELLrldwOH 是一个交错的 你好,世界。 描述一个算法,它以三个字符串 x、y、z 作为输入并确定 z 是否为 x 和 y 的交错。
我只提出了一个具有指数复杂性的解决方案(我们有指向z 字的指针,以及一种二叉树。在每个节点中,我都有可能的字 x 和 y 的当前状态(在开头都是空白)。我正在处理 z,节点有一个/两个/没有孩子,这取决于 z 中的下一个字符是否可以添加到 x 字、y 字或没有字。)我怎么能比指数更好复杂性?
【问题讨论】:
标签: string algorithm time-complexity shuffle interleave