模式匹配:使用模式

时间:2016-02-04 03:23:39

标签: java regex algorithm pattern-matching time-complexity

我试图匹配字符串中的模式。我已经没有想法如何在Java中做到这一点,时间复杂度很高。

  

不是它不是一个简单的正则表达式匹配(但是被证明是错误的

我正在尝试的是,

模式:“1221”(表示1个字重复一次,第2个字重复两次,最后一个字与第一个字相同)

有效输入:“aabbbbbbaa”(aa出现在开头和结尾,而中间部分被bbb重复两次)

我尝试了以下方法,但惨遭失败

  • 我试图用模式循环输入。但这并没有解决问题,虽然我可以实现更多的循环,但它会以指数方式增加时间复杂度。
  • 尝试过递归并再次没用。

我可以尝试其他哪些方法?

我认为动态编程可能就是答案,但我无法确定终止条件。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以使用简单的正则表达式,例如:

^(.+)(.+)\2\1$

它完全符合您的要求:

enter image description here