首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从一长串数字中找到重复多次的三个数字

问题描述

https://stackoverflow.com/questions/47581326/given-a-string-of-a-million-numbers-return-all-repeating-3-digit-numbers

假设给定一个很长的数字,比如PI精确到100万位,找到其中重复出现相邻三个数字。比如给定的数字是1233223332321234323123,那么结果应该是:

解决思路

如果要统计相邻三个数字的重复次数,那么必然需要将其所有可能都列出来,通过Python的切片我们很容易实现:

接下来我们需要统计切好的序列里各个数字出现的次数,因为需要处理是3位数字,可以考虑新建一个长度为1000的空序列,如果数字出现就在对应位置加一,达到统计的目的。

最后我们只要把新序列里统计值大于1的打印出来即可。

我们可以用更加优雅的方式来呈现以上算法,简洁但不简单。

以上便是Stack Overflow上原题的最佳答案,第一眼我没看懂,不知道现在你看明白了吗?

拓展思考

如果这个问题给定的不是数字,而是字符串比如abccdbadfdaabc,依然是要找到相邻的3个重复字母,你有没有好办法?

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券