【发布时间】:2019-09-14 10:08:06
【问题描述】:
我最近在一个面试问题中被问到这个问题:
给定一个输入字符串,检查它是否有重复模式并返回真或假。例如:
"abbaabbaabbaabba"是"abba"的重复模式
private boolean checkPattern(String input) {
}
我们如何使用正则表达式和不使用正则表达式来解决它?我对使用正则表达式和不使用正则表达式的方法都感兴趣。
【问题讨论】:
-
试试这样的,1个或多个的重复模式,包括开始和结束字符
^(abba)+$ -
在问题中,它可以是任何字符串,而不仅仅是
abba,因此正则表达式需要适用于所有场景。 -
字符串必须由 only 重复模式组成吗? (即在字符串中添加“x”将使其不再具有
'abba'的重复模式) -
是的,这是正确的@thebjorn
-
你可以将字符串分成两等长,直到结果长度不是偶数,或者两半不相等......