【发布时间】:2017-06-12 09:10:43
【问题描述】:
我遇到过解决不同问题的正则表达式,但我找不到 regex 来平衡字符串中的字符。
我遇到了一个问题,要查找字符串是否平衡。
例如:aabbccdd 是平衡的,因为字符以偶数重复
但aabbccddd 不是一个平衡的,因为ddd 在奇数模式下重复。这适用于所有输入非特定a,b,c and d 的字符。如果我输入12344321 或123454321,它应该分别返回平衡和不平衡的结果。
如何使用正则表达式找到余额。我们应该使用什么类型的正则表达式来查找字符串是否平衡?
Edit:
我尝试仅使用正则表达式找到解决方案,因为问题需要以正则表达式模式回答。如果没有明确提及正则表达式,我将使用任何其他解决方案来实现
【问题讨论】:
-
为什么需要正则表达式?
-
我从不喜欢 Java,但是在阅读了所有答案和 cmets 之后——我知道——我永远不会切换到 Java。在 python 中,这个问题是大约 2-5 行没有正则表达式和特定库的代码......仍然无法相信你不能在 java 中计算字符串中的字符......实际上这里是这样的答案:stackoverflow.com/questions/275944/…,现在只有比较字符串中每个字符的计数......它实际上是预期的 1-liner
-
@Drako 请记住,OP 要求基于 RegExps 的解决方案(我实际上怀疑这是一个考试技巧问题)。关于 Java,它最近经历了一些发展,然后是 Groovy 和 Kotlin,它们通过添加 Python 自古以来提供的所有语法糖,肯定会抢占 Java 的风头。
-
@classstacker 你可能是对的,因为我来到这里是为了正则表达式标签,发现即使可以编写它也不需要正则表达式,在 python 中不使用 lambdas会进一步缩短它,工作示例有 3-4 行 :) 我相信只需几行就可以在 Java 中做同样的事情 :) 所以真的必须是正则表达式折磨的学校问题 :)
-
@classstacker 这是检查学生是否知道如何从 DFA 或 NFA 转换为正则表达式的完美任务。对我来说,如果提供转换算法,DFA 就足够了。