文章标题

来源:互联网 发布:linux运行shell脚本 编辑:程序博客网 时间:2024/06/03 18:37

/*
*题目:输入一个字符串,打印出该字符串中字符的所有排列。
*例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串
*abc、acb、bac、bca、cab和cba。
*/
str=_GET[‘str’];
arr=array();l =strlen($str);

//交换两个字符的位置
function swapStr(n1,n2, str){n =substr(str,n1, 1);
m=substr(str, n2,1);str[n2]=n;
str[n1] =m;returnstr;
}

//全排序算法
function TotalOrder(k,str, $n){

//定义静态变量static $arr =array();static $j =0;//if ($k >$n) {           $arr[$j] =$str;    $j ++;}else{    for ($i=$k; $i <= $n; $i++) {         $str =swapStr($k, $i, $str);        TotalOrder($k+1, $str, $n);        // $str =swapStr($k, $i, $str);    }}return $arr;

}
num=TotalOrder(0,str, l1);vardump(num);

0 0
原创粉丝点击