难道真的可以用一行写出来吗?Jewels and Stones

大家好,我是铲屎官,最近铲屎官回顾之前刷的Leetcode,发现一个很有意思的题目,这里给大家简单分享一下。

题目是:Jewels and Stones

链接:https://leetcode.com/problems/jewels-and-stones/

这道题目不难,英文语言也不难,题干如下:

这道题目就是要在字符串里面找字符串而已。下面是铲屎官一遍就AC的代码:

这里的思路就是两重循环,时间复杂度是 o(m x n),空间复杂度只有o(1)。很显然,这个不是最优解,只是一个最普通的解。

随后,铲屎官想到这个如果要提高时间效率,那么就得牺牲空间效率,就可以用 HashMap来做。

看上去其实很容易懂,就是通过HashMap来做了一个计数而已。

可是,当我点击 Discuss 里面看大家的答案的时候,我发现,真的好多骚操作。

下面是Python的写法,通过一行代码就搞定了:

其实,最让我震惊的是,用JAVA一行代码就搞定的解法:

我看到我就震惊了,充分感受到了自己的不足,这里使用的是正则表达式。通过正则表达式来匹配字符,最后算出来长度就可以了。

因为铲屎官平时认为正则表达式很难懂,但是在这里看到这种骚操作,惊呆了,所以,借助这个题目,我恶不了一下正则表达式的相关知识点。硬着头皮啃下来,发现,这个东西其实还是很简单的。特此,给大家推荐下面的这篇文章以及网站:

文章: 读懂正则表达式就这么简单

正则表达式检测网站,挺好用的:http://rubular.com/

不做题目,根本不知道编程语言的骚操作。而且,只做题还不行,必须得多看别人写的答案。要做到集百家于一身,这样才能骚到无敌。

这么硬核的公众号,不来关注一下?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181126G13EJG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券