pinepara 最近的时间轴更新
pinepara

pinepara

🏢  Facebook / Software Engineer
V2EX 第 4974 号会员,加入于 2011-01-08 22:54:21 +08:00
今日活跃度排名 16333
5 G 50 S 10 B
Coder. Woodworker. LEGO Fan.
根据 pinepara 的设置,主题列表只有在你登录之后才可查看
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
pinepara 最近回复了
> 初见林月如之后在地图角落里有一个隐藏武器,是一个 AOE 性普攻,非常英霸。

林月如的鞭系武器都是范围攻击,剑系是单体。
准备:
1. 绝育
2. 买保险
3. 不抛弃

1 + 2 可以解决回帖中的绝大部分问题,如果还是有担心且做不到 3 的话建议不要养,吸吸别人家的吧。
正如 @P233 推荐,NATO phonetic alphabet 可以学起来。
名字很长的话,只需要第一个字母声明进入 NATO 模式即可,熟练的话挺快的:

B as in Bravo
Oscar, Bravo
@laydown 这个看起来依然有问题。但是可以确定思路是一样的,可以自行分析验证。
@pinepara 再次失误……应该是

(?=^1*(01*01*)*$)^0*10*(10*10*)*$
@pinepara 不好意思最终答案出现了复制失误,应该是:

(?=^1*((01*){2})$)(^([01]{2})[01]$)

另外 V2EX 不支持 Markdown ?
从实际应用上看,这不是一个适合用正则表达式解决的问题。再强调一遍:

**这不是一个适合用正则表达式解决的问题**。

但是如果非要用正则解决,不失为一个有趣的练习。
1. 首先要指出的是题主给出的答案是错误,很容易验证: https://regexr.com/669d1
2. 所谓的『认知差距』可能主要是对数学思想的熟悉和熟练程度。具体到这个问题上,关键思想无非是把一个复杂的未知问题转化为一个或多个简单的已知问题。下面我来尝试一下:

题目要求是判断一个字符串『是否仅由偶数个 0 和奇数个 1 组成,不论顺序。』(不论顺序后略)

该条件等价于『由偶数个 0 和任意数量的 1 组成』 且
『由奇数个 1 和任意数量的 0 组成』。

由此可以将原问题转化为三个子问题:
1. 如何判断一个字符串是否『由偶数个 0 和任意数量的 1 组成』
2. 如何判断一个字符串是否『由奇数个 1 和任意数量的 0 组成』
3. 如何判断一个字符串同时满足 1. 和 2.

首先解决问题 1:如何判断一个字符串是否『由偶数个 0 和任意数量的 1 组成』,这部分很简单,根据偶数的定义可以再次转化为『任意多个 1,加上由两个 0 和任意数量的 1 组成的小节重复任意多次』,写出如下正则表达式:

```
^1*(01*01*)*$
```

问题 1 解决之后再来看问题 2 『由奇数个 1 和任意数量的 0 组成』就会发现它等价于『至少包含一个 1,且去掉第一个 1 剩下的部分由偶数个 1 和任意数量的 0 组成』,后半段子命题完全同构于问题 1,唯一的区别是 0 和 1 在子命题里被互换了。不做赘述,正则表达式如下:

```
^0*10*(10*10*)*$
```

最后是问题 3:如何判断一个字符串同时匹配两个正则表达式,而且这两个正则都是精确匹配。这个问题没有什么技巧可言,熟悉正则表达式的断言的话的话可以轻松写出同时满足 `EXPRESSION_A` 和 `EXPRESSION_B` 的表达式:

```
(?=^<EXPRESSION_A>$)^<EXPRESSION_B>$
```

综合上述三个问题及其解答,可以得出最终满足题意的表达式:

```
(?=^(1*01*01*)*$)(?=^0*1(0*10*10*)*$)
```

可以自行验证: https://regexr.com/669bq
56 天前
回复了 Kung815 创建的主题 问与答 为什么 markdown 的标题语法不简洁一点?
批量升级也更简单一些: `s/^#/##`
110 天前
回复了 yannxia 创建的主题 问与答 大家平时使用多种语言编程的场景多吗?
场景挺多的,比如我之前做全栈的时候会同时用到 Hack/Javascript/Python 。
现在会同时用到 Python/Cython/C++。
如果本地脚本也算的话就更多了,Bash Ruby Golang 都算是常用的。

『精通』的标准很难定义,不过组内的程序员基本都熟悉并日常使用两门以上的语言。

从数据看整个公司有 30-40% 的 Engineer 用五种以上的语言提交过代码。 :)

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3964 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 09:20 · PVG 17:20 · LAX 02:20 · JFK 05:20
♥ Do have faith in what you're doing.