【PHP】从一副扑克中随机抽5张,并输出结果是不是顺子?(时间60分钟)

2024-01-26 03:58

本文主要是介绍【PHP】从一副扑克中随机抽5张,并输出结果是不是顺子?(时间60分钟),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从一副扑克中随机抽5张,并输出结果是不是顺子?

写这个小功能,是去年年底面试遇到的题,花了一个多小时才做完但结果并不让人满意,回家后反思好长一段时间。今天又看到这个让我心情咯噔一下的题,决定再做一遍

主体函数

//输出
function ouput($data)
{$string = '';$arr = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];$colorBlock = [0 => '黑桃', 1 => '红桃', 2 => '梅花', 3 => '方块'];foreach ($data as $row) {$string .= sprintf("%s%s ", $colorBlock[$row['color']], $arr[$row['number']]);}$straight = isStraight(array_column($data, "number"));return ["msg" => $string, "straight" => $straight];
}// 获取颜色和数字
function getPoker()
{for ($i = 0; $i < 5; $i++) {$list[] =  ['color' => rand(0, 3), 'number' => rand(0, 12)];}return $list;
}//是否顺子
function isStraight($list)
{if (count($list) != 5) {return '发牌数量错误';}//升序sort($list);//提前设定可能出现的情况$string = '0,1,2,3,4,5,6,7,8,9,10,11,12;0,9,10,11,12;0,1,10,11,12;0,1,2,11,12;0,1,2,3,12;';if(strpos($string , join(',', $list))){return  "是顺子";}return "不是顺子";
}

调用并输出

// 输出颜色和数字
$data = getPoker();
$res = ouput($data);
echo  $res["msg"] . "<br>" . $res["straight"];

输出结果1:
方块4 梅花6 红桃5 黑桃7 红桃3
是顺子

输出结果2:
方块A 方块2 方块8 黑桃4 梅花9
不是顺子

测试用例:

$data = [["color" => 0, "number" => 1],["color" => 3, "number" => 3],["color" => 2, "number" => 2],["color" => 3, "number" => 5],["color" => 1, "number" => 4]
];
$res = ouput($data);
echo  $res["msg"] . "<br>" . $res["straight"];

输出:
黑桃2 黑桃4 红桃3 梅花6 方块5
是顺子

这篇关于【PHP】从一副扑克中随机抽5张,并输出结果是不是顺子?(时间60分钟)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645578

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

LeetCode:64. 最大正方形 动态规划 时间复杂度O(nm)

64. 最大正方形 题目链接 题目描述 给定一个由 0 和 1 组成的二维矩阵,找出只包含 1 的最大正方形,并返回其面积。 示例1: 输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4 示例2: 输入: 0 1 1 0 01 1 1 1 11 1 1 1 11 1 1 1 1输出: 9 解题思路 这道题的思路是使用动态规划

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json