算法
icaohongyuan
这个作者很懒,什么都没留下…
展开
-
算法 -- 求最长公共字符串&PHP
本文是利用PHP,求最长公共字符串。思路:利用动态规划和矩阵的思想。动态规划:就是用空间的代价来争取时间,将中间结果保存下来,后面循环使用供,减少重复计算次数。矩阵思想:定义一个矩阵,宽和高分别为两个字符串的长度。从上到下、从左到右逐个扫描,每次扫描要比较矩阵中每个点对应的行列字符是否相等, 相等的话等于左上邻+1,不相等则置为0。时间复杂度:矩阵中的长和宽的乘积即为复杂度。复杂度...原创 2018-10-23 16:12:21 · 593 阅读 · 0 评论 -
PHP 多维数组转为一维数组
本文章中,主要展示了两种方法来实现任意多为数组转为一维数组的方法。一个是递归,一个是利用PHP内置函数。先设定一个数组:$arr = [ 'a' => [ 'b' => ['c', 'd'], 'e' => ['f' => ['g'], 'h' => 'i'] ], 'm' => 'n'];...原创 2019-03-20 13:57:00 · 3607 阅读 · 0 评论 -
算法 -- 把整数分解成若⼲个连续整数和的形式&PHP
把整数分解成若⼲个连续整数和的形式题目描述: 某些整数能分解成若⼲个连续整数的和的形式。 例如: 15 = 1 + 2+3+4+5 15 = 4 + 5 + 6 15 = 7 + 8 某些整数不能分解为连续整数的和,例如:16 输⼊:⼀个整数N(N <= 1000...原创 2019-01-01 19:56:22 · 842 阅读 · 0 评论 -
求两个字符串的第⼆⻓公共单词&PHP
求两个字符串的第⼆⻓公共单词题目描述: 求出字符串 s 与字符串 t 的第⼆⻓公共单词(这⾥,假设两个字符串均由英⽂字⺟和空格字符组成);若找到这样的公共单词,函数返回该单词,否则,函数返回NULL,如果有多个满⾜要求,则返回第⼀个单词。 例如:若 s=“This is C programming text”,t=“This is a text for C ...原创 2019-01-01 19:50:32 · 465 阅读 · 0 评论 -
算法 -- 判断两个字符是否同构&PHP
判断两个字符是否同构使用语言:PHP同构:如字符串‘aabbccc’和字符串‘bbccvvv’的结构相同,而和‘abccddd’不同!代码演示:function same_structure($str1, $str2){ if ($str1 == $str2) { return $str1 . '和' . $str2 . '同构!'; } ...原创 2018-11-22 16:37:03 · 324 阅读 · 0 评论 -
可逆加密算法(一):ASCII 码加密,恺撒加密,Base64加密
ASCII 码加密,恺撒加密,Base64这三种加密方式都是可逆的。1 ASCII 码加密和解密ASCII 码加密就是把字符串的变换成ASCII 码的数字传送。(只能输入英文等字符,不可以输入中文文字!)加密:function ASCII_encrypt($str){ $arr = str_split($str); $str_code = ''; f...原创 2018-11-20 16:44:08 · 8086 阅读 · 4 评论 -
算法 -- 四种方法获取的最长“回文串”,并对时间复杂进行分析对比&PHP
回文串:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 -- 来自百度百科关于获取字符串中最长的回文串的算法中,目前有很多算法,本文中主要是用PHP来实现的算法之一。算法一:暴力解法暴力计算出所有的字符串并判断。时间复杂度:O(n^3)。<?php//1. 判断字符串是否是回文字符串function isPalindr...原创 2018-10-07 23:07:06 · 830 阅读 · 0 评论 -
算法 -- 猴子选大王的四种方法,并对其时间与内存消耗的分析和对比&PHP
本篇利用PHP对“猴子选大王”问题,给出了四种方法,并对其进行了时间消耗的分析与对比。题目:n个猴子要选出一个大王,随机给出一个数m,当猴子报数为m的时候,则被淘汰,剩余的最后一个猴子即为大王。 一、算法解释及代码展示方法一:围圈报数n 个猴子围成一圈从 1 开始报数,报数等于 m 的猴子淘汰,然后下个猴子继续从 1 报数。方法二:变换队列n 个猴子持 1~n 的号码排成一...原创 2018-11-05 17:19:40 · 3003 阅读 · 1 评论 -
算法 -- 遍历出目录下所有文件,及算法优化&PHP
在想解决这个问题的时候,我也查找了很多资料。推荐给大家我个人觉得比较好的一篇:PHP遍历文件目录文中第四个算法可以遍历出文件夹下的所有文件,代码如下:$dir = 'E:\phpStudy\PHPTutorial\WWW';echo '<pre>';function listDir($dir){ if (is_dir($dir)) { if ($...原创 2018-10-31 16:52:55 · 1854 阅读 · 0 评论 -
将一段压缩后的字符串解压,并且顺序输出
将一段压缩后的字符串解压,并且顺序输出。算法描述:解压规则:每个字符串后面跟着一个数字,表示这个字符重复的次数。例如:'a5'解压后为'aaaaa', 'abc3'解压后为'abcabcbac'排序规则:根据字符串的重复次数升序排序;如:'a3b2'解压后为'bbaaa'2。如果字符串重复次数相同,根据AS...原创 2019-04-09 18:31:10 · 2038 阅读 · 0 评论