
算法
drzdryse
这个作者很懒,什么都没留下…
展开
-
中文与unicode互转
【代码】中文与unicode互转。原创 2023-06-09 17:07:19 · 981 阅读 · 0 评论 -
数值、Excel列互转
/** * 数值转Excel列 * @param int $num 整数 * @return string */function num2excel(int $num): string{ $str = ''; $arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'.原创 2021-12-18 17:04:22 · 600 阅读 · 1 评论 -
驼峰命名和下划线命名互转
$str1 = 'get_name';$str2 = 'getUserNameList';/** * 驼峰转下划线 思路:“A”正则替换为“@A”,然后转小写,最后“@”替换为“_” * @param string $str 驼峰字符串 * @return string */function underline(string $str): string{ return strtr(strtolower(preg_replace('/([A-Z])/', '@$1', $str)).原创 2021-11-02 21:18:09 · 1867 阅读 · 0 评论 -
仿PHP原生json_encode函数
$arr = [ 'a' => 'a', 0 => 1, [ 1, 'b' => 'b', [ 1, 'c' ] ]];/** * 仿PHP原生json_encode函数 * @param array $arr 数组 * @return string 返回json字符串 */function json_encode2(array .原创 2021-10-13 17:21:42 · 126 阅读 · 0 评论 -
无重复字符的最长子串
/** * 无重复字符串的最长子串 * @param string $str * @return string */function LongestSubstringWithoutDuplicateCharacters(string $str): string{ // 第一步,找出所有无重复子字符串 $len = strlen($str); // 字符串长度 $substring = ''; // 子字符串 $arr = []; // 保存无重复子字符串的容器..原创 2021-09-28 21:37:52 · 90 阅读 · 0 评论 -
计算收益 - 揭秘坑爹的养老金 保守算法,减少一年收益
/** * 计算收益 - 揭秘养老金骗局 保守算法,减少一年收益 * @param int $money 每次投钱金额 * @param float $rate 利率 * @param int $age 开始投钱年龄 * @param int $until 结束投钱年龄 * @param int $limit 领钱结束年龄 * @param string $model 模式 y-年 m-月 w-周 * @return array */function ge...原创 2021-07-17 18:40:31 · 142 阅读 · 0 评论 -
计算机 加减乘除原理 二进制运算 PHP 位运算
<?phprequire('function.php');// 二进制从右向左计算$a = 1; // 1 0001$b = 1 + 2; // 3 0011dump($a & $b); // 0001dump($a | $b); // 0011dump($a ^ $b); // 0010dump(~$a); // -2dump(decbin($a)); // "1"dump(decbin(~$a)); // "111111111111111111111111.原创 2020-06-01 11:20:55 · 338 阅读 · 0 评论 -
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
一般方法:<?phprequire ('function.php');// 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。// 生成一个随机数组$arr = [];$count = mt_rand(7, 12);for ($i = 0; $i < $count; ++$i) { $arr[] = mt_r...原创 2019-12-05 20:18:54 · 3067 阅读 · 0 评论 -
PHP 二维数组元素排列组合 子数组数量固定为2
//$a = [// ['甲' => 'A', '乙' => 'B'],// ['甲' => 'C', '乙' => 'D'],// ['甲' => 'E', '乙' => 'F'],// 。。。无限次//];$a = [ ['甲' => 'A', '乙' => 'B'], ['甲' => 'C', '乙' => ...原创 2019-12-03 13:37:48 · 357 阅读 · 0 评论 -
PHP 移除数组中重复的值 仿 array_unique 函数 以及 进阶函数
// 注意不要把键值设为0 原因如下dump(0 == 'a'); // 返回 true$arr = [ 'a' => 1, 'b' => 1, '' => 'a', 'c' => 'b', 'd' => 'a',];dump($arr);// 仿 array_unique 函数function array_unique2(array &a...原创 2019-11-30 16:06:14 · 185 阅读 · 0 评论 -
输出PHP可直接使用数组 正则替换 牛逼的正则表达式
调试过程中,需要用到被打印到页面上的数据,直接复制下来,还需要修改成正确的数组,特有了这个方法。直接用这个方法在页面上打印出数组,直接把数组复制到PHP文件中,就可以直接使用了。$arr = array( 0 => 1, 1 => array( 0 => 4 ), array( 'b' => 'a' ...原创 2019-08-12 16:42:12 · 1085 阅读 · 0 评论 -
快速排序 quick_sort
//快速排序 从小到大function quick_sort(array $arr){ $count = count($arr); if ($count < 2) { return $arr; } $jz = $arr[0]; // 基准 $left_arr = $right_arr = []; for ($i=1;$i&...原创 2019-05-09 14:32:33 · 104 阅读 · 0 评论 -
php 将字符串数组按照ascii码排序
require ('function.php');// 比较两串字符的ascii码大小function check_ascii(string $str1, string $str2){ $len1 = strlen($str1); $len2 = strlen($str2); if ($len1 > $len2) { $bool = fal...原创 2019-06-27 17:34:10 · 7240 阅读 · 0 评论 -
数组 转换为 树结构
// 初始数组$arr = [ ['id'=>1,'pid'=>0,'name'=>'a'], ['id'=>2,'pid'=>1,'name'=>'b'], ['id'=>3,'pid'=>1,'name'=>'c'], ['id'=>4,'pid'=>2,'name'=>'d'], ...原创 2019-06-13 11:38:03 · 827 阅读 · 0 评论 -
找出一个比N大且最接近的数,这个数的每位之和与N相同,用代码实现之。
/*一个K位的数N (K≤2000,N≤1020)找出一个比N大且最接近的数,这个数的每位之和与N相同,用代码实现之。例如:0050 所求书数字为0104;112 所求数为121*/function findBigNear($s){ $str = $s; // 新字符容器 $len = strlen($s); // 得到字符位数 $sum = 0; // 得到所...原创 2019-06-04 15:18:23 · 1533 阅读 · 1 评论 -
php八皇后问题,N皇后问题
// 不知道大家有没有下过国际象棋,不过没关系,问题是这样的,在8×8格的国际象棋上摆放八个皇后,// 使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。// 请设计程序算出结果,那种计算机语言不限。class queen{ const n = 6; // 皇后个数 常量 private static $qp = []; // 棋盘 ...原创 2019-05-20 11:38:43 · 562 阅读 · 1 评论 -
小明过桥问题
小明家必须要过一座桥。小明过桥最快要1秒,小明的弟弟最快要3秒,小明的爸爸最快要6秒,小明的妈妈最快要8秒,小明的爷爷最快要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定。过桥时候是黑夜,所以必须有手电筒,小明家只有一个手电筒,而且手电筒的电池只剩30秒就将耗尽。小明一家该如何过桥,请写出详细过程思路 最快的两个人负责来回传递手电筒,依次最慢的两人过去 右到左f...原创 2019-05-10 14:38:13 · 1805 阅读 · 0 评论 -
一道面试题
<?phpfunction dump($var){ ob_start(); var_dump($var); $output = ob_get_clean(); $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output); $output = '<pre>...原创 2019-04-05 00:02:03 · 140 阅读 · 0 评论 -
将一个的数字转化成中文输出,例如,输入1234567 则输出一百二十三万四千五百六十七
将一个的数字转化成中文输出,例如,输入1234567 则输出一百二十三万四千五百六十七原创 2019-06-28 15:31:25 · 1062 阅读 · 0 评论 -
百元百鸡
// 公鸡 5 文钱 1 只, 母鸡 3 文钱 1 只, 小鸡 1 文钱买 3 只, 现在用 100 文钱共买了 100 只鸡, 问: 在这 100 只鸡中, 公鸡、 母鸡//和小鸡各是多少只? ( 设每种至少//一只)//5x+3y+1/3z = 100 => 15x+9y+z = 300//x+y+z = 100//14x+8y = 200 => 7x...原创 2019-06-24 16:34:25 · 172 阅读 · 0 评论