渐进式单词组合

时间:2011-02-21 11:16:35

标签: php algorithm string factorial

我需要获得一个字符串的渐进式单词组合。

E.g。 “这是字符串” 输出:“这是字符串”         “这是”         “这个字符串”         “是字符串”         “这个”         “是”         “字符串”

你知道类似的算法吗? (我需要用php语言) 谢谢;)

2 个答案:

答案 0 :(得分:4)

这是解决您问题的简单代码。 我将每个字符串递归地连接到数组中的其余字符串。

$string = "this is a string";  
$strings = explode(' ', $string);

// print result
print_r(concat($strings, ""));

// delivers result as array
function concat(array $array, $base_string) {

    $results = array();
    $count = count($array);
    $b = 0;
    foreach ($array as $key => $elem){
        $new_string = $base_string . " " . $elem;
        $results[] = $new_string;
        $new_array = $array;

        unset($new_array[$key]);

        $results = array_merge($results, concat ($new_array, $new_string));

    }
    return $results;
}

答案 1 :(得分:1)