NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
https://www.jianshu.com/p/7ba900881eb8 今天面试一家公司,因为简历上写了ACM经历,被问到了PHP字符串全排列算法,当时时间有限只给了思路,回家后把它实现了出来: ``` <?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); ``` 作者:灵魂放逐 链接:https://www.jianshu.com/p/7ba900881eb8 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。