codewars
贪玩的木木
这个作者很懒,什么都没留下…
展开
-
Conway‘s Game of Life - Unlimited Edition(康威生命游戏-无限版)
最近也不知道在忙啥,反正好久没玩 codewars 了,上去看看的时候偶尔看到了一个很有意思的题目,稍微看了一下说明,感觉可以做出来,于是就开始了长达 2+2 个小时的解题过程。下面是简单的题目说明:简单的来说,就是有一个二维数组,数组的每一个元素就是一个细胞,细胞有存活和死亡两种状态,每经过一代,细胞的状态都可以发生改变,有如下四个具体规则:1、任何具有少于两个活邻居的活细胞都会死亡。2、任何具有三个以上活邻居的活细胞都会死亡。3、任何有两个或三个活邻居的活细胞都可以存活到下一代。4、.原创 2020-12-09 20:43:36 · 2797 阅读 · 0 评论 -
以字符串的形式完成加法和乘法运算
问题描述和思路:当运算的数字过大时,会溢出范围,导致最后的结果出错。PHP种整型数的字长和平台有关,32 位平台下的最大值通常最大值是大约二十亿,64 位平台下的最大值通常是大约 9E18。在PHP中,当数字超出整型范围时,会自动将其转换为浮点型,浮点数的字长和平台相关,通常最大值是 1.8e308 并具有 14 位十进制数字的精度。在本题中,虽然范围是在浮点数内的,但是精度却不足了,所以需要用别的方法来实现大数的运算,在这里我们可以使用字符串来实现。直接运算——精度不足//...原创 2020-08-20 20:07:39 · 834 阅读 · 0 评论 -
Square into Squares. 大平方数转小平方数之和
问题描述:像是把一个大的正方形分割成几个小的正方形块一样,把一个数分成由几个比他小的数字,要求其平方和相等。如把 50 分成 "1,3,5,8,49"。额外要求:1、要求数字序列严格递增:比如 "1,1,4,9,49" 就不符合要求。2、要求返回具有最大可能值的结果:比如11可以分为[1,2,4,10]和[2,6,9],则返回[1,2,4,10]。思路1:解题步骤可以分为两步,拿50举例1、从50-1开始往下循环,获取“最大的数”。如果49的组合不成立,则尝试48,以此类推。2、将剩余部...原创 2020-08-17 22:02:48 · 323 阅读 · 0 评论 -
罗马数字和阿拉伯数字之间的转换
问题描述:把我们常见的阿拉伯数字转化为罗马数字的形式。拓展:两种形式的相互转换。思路:将阿拉伯数字拆分为能够被罗马数字整除的形式(比如100、500等),再整合到一起,然后替换字符为我们需要的形式(比如IIII=>IV,VIV=>IX等等)。再使用键值对形式的数组,在实现阿拉伯数字转罗马数字之后,交换键值,就能实现反向转换了。function solution($number) { $roman = array( 'M' => 1000, 'D' =...原创 2020-08-16 18:31:17 · 640 阅读 · 0 评论 -
多组括号闭包问题
问题描述:判断字符串中的括号 () [] {} 是否为闭合结构。最开始的思路是,使用堆栈的结构,遇到左括号加入堆栈头,遇到匹配的右括号则将左括号移除堆栈,最后若堆栈有剩余或过程中匹配失败,则括号结构不为闭包。function validBraces($braces){ $array = []; foreach(str_split($braces) as $item) { if($item == '(' || $item == '[' || $item == '{').原创 2020-08-16 18:29:28 · 133 阅读 · 0 评论 -
字符串转驼峰式
这道题描述起来也是十分地简单,就是把原先用 '-','_'隔开的字符串转为驼峰法,也就是单词紧贴在一起,且单词的首字母大写(除了第一个单词之外)。我的想法是,将字符串按照 '-','_' 分割成多个数组,再将一个个数组,也就是单词拼接起来,就是我们需要的了。function toCamelCase($str){ $str = str_replace('_','-',$str); $array = explode('-',$str); $newStr = $array[0];...原创 2020-08-15 23:45:46 · 2200 阅读 · 0 评论 -
互补DNA:Complementary DNA
这道题描述起来十分地简单,就是把字符串总的AT和CG互换。说一说我刚开始的思路吧,一般和字符串有关系的都会最先想到用正则,可惜我正则不是很熟练,交换字符位置一下子想不到怎么实现,只能老老实实用正常的办法了,遍历字符串,再拼接成我们需要的字符串,就能简单地实现交换的效果。再用数组$key=>$value的形式,十分简单地实现switch的效果。function DNA_strand($dna) { $array = [ "A" => "T", "T" .原创 2020-08-14 23:19:53 · 501 阅读 · 0 评论