【发布时间】:2016-02-04 03:23:39
【问题描述】:
我试图匹配字符串中的模式。我没有想法如何在 Java 中以良好的时间复杂度做到这一点。
不,它不是简单的正则表达式匹配(但喜欢被证明是错误的)
我正在尝试的是,
模式:“1221”(表示1个单词重复一次,第2个单词重复两次,最后一个单词与第一个单词相同)
有效输入:“aabbbbbbaa”(aa出现在开头和结尾,而中间部分被bbb重复两次占据)
我尝试了以下方法,但都失败了
- 我尝试使用模式循环输入。但这并没有解决问题,虽然我可以通过更多循环来实现它,但它会成倍增加时间复杂度。
- 尝试了递归,还是没有用。
我还可以尝试哪些其他方法?
我认为动态编程可能是答案,但我无法确定终止条件。
任何帮助将不胜感激。
【问题讨论】:
-
添加你尝试过的代码
-
我不要代码,我可以自己编码。我只想要这种方法。虽然我很想有一个样品。正如我在帖子中提到的,我发布了两种方法。
-
听起来非常接近this。
-
谢谢。是的,它是相似的,但我的问题是一个更大问题的故障。再次寻找方法
-
如果相似,则说明您没有正确解释问题。例子是个好东西,但它不能代替好的定义!
标签: java regex algorithm pattern-matching time-complexity