【发布时间】:2016-05-26 06:40:25
【问题描述】:
所以我最近有一个面试问题,要求我确定一根弦是否平衡。一根弦在这两种情况下是平衡的:
- “a”和“c”的出现次数之和为偶数。
- “b”和“d”出现次数之和为偶数。
因此,给定示例“cccddbba”,这些条件成立。 c (3) 的出现+a (1) 的出现是even (1+3=4),d (2) 的出现+b (2) 的出现是even (2+2=4)。字符串只能包含字符“a”、“b”、“c”和“d”。正则表达式应该适用于任何字符串,而不仅仅是这个例子。
我的任务只是为此编写正则表达式。我假设他们在后台计算使用我的正则表达式找到的“a”和“c”的匹配数并将它们总结起来。 'b' 和 'd' 也是如此。
我有一段时间没有接触正则表达式了,所以我做得很糟糕,只到了^([ac])*?[db]*?([ac])*?$,这显然是不正确的。
【问题讨论】:
-
如果我在一次采访中被问到这个问题,我实际上会回答“不,正则表达式不是一个好的解决方案”。使用正则表达式将是 1. 不可读 2. 无法维护以供未来增强。
-
嗯,实际上这是一个编码挑战,而不是一个实际的面试问题,所以我没有发言权:(。但我完全同意你所说的。