码迷,mamicode.com
首页 > 编程语言 > 详细

PHP字符串全排列算法

时间:2020-04-14 11:01:28      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:ted   art   important   while   numbers   算法   tor   result   item   

<?php
/**
 * PHP字符串全排列算法
 */
$results = [];
$arr = [];

function bfs($start) {
    global $arr;
    global $results;

    $queue = [];
    array_push($queue, $start);

    while( !empty($queue) ) {
        $cur = array_shift($queue);
        if(strlen($cur) === count($arr)) {
            array_push($results, $cur);
        }

        $arr_temp = $arr;
        for ($i=0; $i<strlen($cur); $i++) {
            unset($arr_temp[$cur[$i]]);
        }

        foreach ($arr_temp as $key => $value) {
            $node = $cur . $key;
            array_push($queue, $node);
        }
    }
}

function allPermutation($string) {
    $array = [];
    for($i=0; $i<strlen($string); $i++) {
        array_push($array, $string[$i]);
    }
    sort($array);

    foreach ($array as $item) {
        global $arr;
        $arr[$item] = 1;
    }

    foreach ($array as $item) {
        bfs($item);
    }
}

allPermutation(‘abcde‘);
var_dump($results);

PHP字符串全排列算法

标签:ted   art   important   while   numbers   算法   tor   result   item   

原文地址:https://www.cnblogs.com/xiami2046/p/12696003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!