递归算法 设有a, b, c, d 4个字符,对其做全排列,可以有24种不同情形,如abcd,abdc,acbd… 等等。使用递归算法打印出所有24种排列 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str = 'abcd';$res = Arrangement( $str );print_r($res);function Arrangement($arr = array(), $res = '') { if(! is_array($arr) ) $arr = str_split($arr); if(empty($arr)) $array[] = $res; else foreach($arr AS $k => $v) { unset($arr[$k]); foreach( Arrangement($arr, $res . $v) AS $t) $array[] = $t; $arr[$k] = $v; } return $array;}Array( [0] => abcd [1] => abdc [2] => acdb [3] => acbd [4] => adbc [5] => adcb [6] => bcda [7] => bcad [8] => bdac [9] => bdca [10] => bacd [11] => badc [12] => cdab [13] => cdba [14] => cabd [15] => cadb [16] => cbda [17] => cbad [18] => dabc [19] => dacb [20] => dbca [21] => dbac [22] => dcab [23] => dcba) 【求助】php sleep()导致所有网页都没响应了 关于一个登陆验证的问题 class调用问题 很诡异为啥生成了2文件 请问有什么方法可以将表格post到两个以上的php页面吗? 登录N次失败以后N分钟内禁止登录 php传值给js,可以不用echo吗? 新手报道!希望各位兄弟帮忙,多多支持! 请教一个关于英文字符串传递的问题 如何将键盘、鼠标的复制功能封掉!!请各位高人指点一二!!! 还是一个新手问题 php传值问题
$res = Arrangement( $str );
print_r($res);
function Arrangement($arr = array(), $res = '') {
if(! is_array($arr) ) $arr = str_split($arr);
if(empty($arr)) $array[] = $res;
else foreach($arr AS $k => $v) {
unset($arr[$k]);
foreach( Arrangement($arr, $res . $v) AS $t) $array[] = $t;
$arr[$k] = $v;
}
return $array;
}Array
(
[0] => abcd
[1] => abdc
[2] => acdb
[3] => acbd
[4] => adbc
[5] => adcb
[6] => bcda
[7] => bcad
[8] => bdac
[9] => bdca
[10] => bacd
[11] => badc
[12] => cdab
[13] => cdba
[14] => cabd
[15] => cadb
[16] => cbda
[17] => cbad
[18] => dabc
[19] => dacb
[20] => dbca
[21] => dbac
[22] => dcab
[23] => dcba
)