顺子号:1,2,3,4,5或者9,0,1,2,3,4或者7,8,9,0,1之类的
工作中写的那个还有bug,晚上研究了下终于写出个没有bug的方法,分享下,如果看到这篇文章还有更好办法的欢迎交流,共同进步。

function checkShunzi(arr) {arr = arr.sort();if (arr.indexOf(0) != -1 && arr.indexOf(9) != -1) {let arr0 = []; //0这边的数组比如[0,1,2,3,8,9]->[1,2,3]let arr9 = []; //9这边的数组比如[0,1,2,3,7,8,9]->[7,8]//只要arr0和arr9是顺子并且长度总和等于arr.length-2,或者arr9的长度等于arr.length-1那么数组arr就是顺子for (let i = 0; i < arr.length - 2; i++) {let j = i + 1;if (arr[j] - arr[i] == 1) {arr0.push(arr[j]);} else {break;}}for (let i = arr.length - 1; i > -1; i--) {let j = i - 1;if (arr[i] - arr[j] == 1) {arr9.unshift(arr[j]);} else {break;}}return isShunNum(arr0) && isShunNum(arr9) && ((arr.length - 2 - arr0.length == arr9.length) || arr9.length == arr.length - 1); //arr0.length==arr.length-1,[0,1,2,3,4,5,6,7,8,9]的情况}function isShunNum(arr) {return arr.every(function (item, index, arr) {return 0 === index || (Number(item) + 10 - 1) % 10 == arr[index - 1];})}return isShunNum(arr);
}

记录计算顺子(12,3,4或者9,0,1,2)的方法相关推荐

  1. 64 位系统遇到未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0

    本人写的.net程序部署在windowsserver 2003的操作系统上正常,部署到windows server 2008上时候报错"未在本地计算机上注册 Microsoft.Jet.OL ...

  2. IIS未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    win10 64位调试程序,出现这样的错误提示:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序 解决方法如下: 方法一:"设置应用程序池默认属性"/ ...

  3. Excel导入数据,未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    Excel导入数据,未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"提供程序: .NET在导入Excel时,使用了一个Microsoft.Jet.OLEDB. ...

  4. PTA浙大版python程序设计题目集--第2章-1 计算 11+12+13+...+m (30 分)

    输入一个正整数m(20<=m<=100),计算 11+12+13+-+m 的值. 输入格式: 在一行输入一个正整数m. 输出格式: 在一行中按照格式"sum = S"输 ...

  5. python 计算s= 12+ 22+ 32 +... + (10*n+2)

    计算 s= 12+ 22+ 32 +- + (10*n+2) 参考代码 @author: Catwang """ def main():sum = 0n = int(in ...

  6. 第2章-1 计算 11+12+13+...+m

    第2章-1 计算 11+12+13+-+m 输入一个正整数m(20<=m<=100),计算 11+12+13+-+m 的值. 输入格式: 在一行输入一个正整数m. 输出格式: 在一行中按照 ...

  7. 计算 11+12+13+...+m python

    第2章-1 计算 11+12+13+-+m (30 分) 输入一个正整数m(20<=m<=100),计算 11+12+13+-+m 的值. 输入格式: 在一行输入一个正整数m. 输出格式: ...

  8. 计算1+12+123+1234+12345

    /*计算1+12+123+1234+12345*/ #include"stdio.h" int main() {int i,item=0,sum=0;for(i=1;i<=5 ...

  9. 重走长征路---OI每周刷题记录---4月12日 2015

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

最新文章

  1. Reveal.js一个用来做WEB演示文稿的框架
  2. 【Luogu】P3927 SAC E#1 - 一道中档题 Factorial
  3. 几何间隔、函数间隔和||W||
  4. 手机做服务器性能咋样,服务器性能不足 怎样才能逼出最强状态
  5. git 常用命令思维导图
  6. 1从控制台输入年份,判断是闰年还是平年;
  7. 网络爬虫和Python有什么联系
  8. iOS UIWebView清除缓存
  9. Swift 中的过滤器
  10. java伪随机数(菜鸟教程)
  11. 如何从官网下载Hibernate源码与jar包
  12. 【实用软件】picasa不能导入文件夹至其中 的问题解决
  13. 逻辑删除还是物理删除
  14. 岁末精选:2005国外经典语录
  15. HDU - 胜利大逃亡(搜索)
  16. PHP 26个英文字母递增
  17. 基于不同策略的英文单词的词频统计和检索系统(C++)
  18. 【ELM回归预测】基于非洲秃鹫算法优化极限学习机预测附matlab代码
  19. 计算机绘图图框实验报告,制图基础及计算机绘图实验报告.doc
  20. win10c语言关机,win10如何设置定时关机?

热门文章

  1. 阿里云前端周刊 - 第 39 期
  2. [20180502]PLDEVELOP与存储过程调试.txt
  3. java日记(2)------定时任务quartz浅析
  4. matlab 把一个文件夹下的所有图片(可以包含在子文件夹下)考到指定文件夹下...
  5. Swift 中 String 取下标及性能问题
  6. 洛谷P1182 数列分段Section II 二分答案
  7. [LeetCode]Contains Duplicate III
  8. 配置2008的网络与工作组环境
  9. javascript 生成一个一亿长度的随机数组,从中排列出最大的1000个项;
  10. 变了味的微信你还能用多久?