Regex Golf通关记录(9)——对称篇

Regex Golf网址:https://alf.nu/RegexGolf

Regex Golf通关解答:Regex Golf通关解答-优快云博客

A man, a plan–You're allowed to cheat a little. Even in hard mode, words will be no longer than 13 characters.

回文串匹配。这对于程序员来说应该是基础题目了,在漫长的学习工作生涯中,相信每个人都实现过回文串的匹配。不过稍微可能有点出乎意料的是,如果仅使用正则表达式的话,这个问题其实是没有通用解的。好在题目提示中说明了,我们要匹配的串长度不超过13。于是我们可以构造出如下答案:^(.).?((.).?((.).?((.).?((.).?((.).?\11)?\9)?\7)?\5)?\3)?\1$。当然提示中还说了我们可以“Cheat”,那么我们在多Cheat一点,得到字符最少答案:^(.)[^p].*\1$。

Balance–This one is also impossible, but there's a finite number of test cases

括号匹配。提示中所说的“Impossible”是指仅使用基础的正则语法无法直接完成匹配。实际上,某些语言对正则扩展了“递归”的语法,在这种情况下,可以直接完成对合法括号对的匹配。本题中,最深的括号层次不超过七层,因此可以构造出答案:^(<(<(<(<(<(<(<>)*>)*>)*>)*>)*>)*>)*$。本题字符最少的答案为:.{37}|^(<(..(?!<.>$))*>)*$。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值