求离一正整数最近的大于自身的“换位数”(源自程序员小灰)
给定一个正整数,实现一个方法来求出离该整数最近的大于自身的“换位数”。
什么是换位数呢?就是把一个整数各个数位的数字进行全排列,从而得到新的整数。例如53241和23541。
小灰也不知道这种经过换位的整数应该如何称呼,所以姑且称其为“换位数”。
题目要求写一个方法来寻找最近的且大于自身的换位数。比如下面这样:
输入12345,返回12354
输入12354,返回12435
输入12435,返回12453
注:看题之后的第一想法是,是先对此数进行拆分组合,得到这几个数字所有的全排列,然后对其升序排序,得到自小到大的排序序列,此正整数后面的数即为大于它的“换位数”。
$t = '1324';
$r = preg_match_all('#\d#', $t, $m);
$r = [];
foreach($m[0] as $v){
$r[] = (int)$v;
}
...
给PHP关联数组的头部增加一项
$user=array(
'id'=>'5',
'name'=>'user',
'email'=>'[email protected]',
'status'=>'1');
$user1['xxx'] = 'xxxx';
$aa = array_merge($user1,$user);
//
$user=array(
'id'=>'5',
'name'=>'user',
'email'=>'[email protected]',
'status'=>'1');
$user = array_reverse($user);
$user['xxx'] = 'xxx';
$user = array_reverse($user);
驼峰式的字符串与下划线式的字符串互转
<?php
$ts = microtime(true);
$r = 'open_door';
$s = '';
foreach(explode('_', $r) as $v){$s .= ucfirst($v);}
$t1 = microtime(true);
echo $s;
echo PHP_EOL,$t1 -$ts,PHP_EOL;
$s = ucwords(str_replace("_"," ",$r));
$t2 = microtime(true);
echo $s;
echo PHP_EOL,$t2 -$t1,PHP_EOL;
$s = preg_replace_callback('/(^|_)(\w)/', function ($mat){return strtoupper($mat[2]);}, $r);
$t3 = microtim...


.jpg)
.jpg)