最短验证是否是同花顺

['as', '10h', '9d', 'qc', '3h']

'as' = 'a'是'A','s'是花色

这样一个array,需要写一个function用最短的字符验证是否为顺子或者同花顺
写了半天,最简单的也需要很多行,说是有人用70个字符完成过,感觉不太可能。。

一只名叫tom的猫
浏览 327回答 2
2回答

三国纷争

我没学过php,给你一个思路吧。 1.建立一个数字到扑克数字的映射(a[1]='1',a[2]='2'....a[11]='j'...)2.建立另一个数字到扑克花色的映射(b[1]='s',b[2]='h'...)3.利用1,2写一个2重循环建立一个牌型到值的映射(c[a[i].b[j]]=i+j*100)4.利用映射关系对你的数组进行排序,接下来检测每个相邻元素之间的值的差均为1即可 代码行数尚可,没有利用可能存在的语言特性,不够优美。优点是映射关系只要建立1次,以后重复步骤4即可
打开App,查看更多内容
随时随地看视频慕课网APP