有很多解决方案可以找到可能的子串。我试过this php解决方案。
但我有具体要求。我需要使用顺序中的字符生成子字符串。例如:如果给定的字符串是:'ABCDE'
然后可能的组合是:'ABCD','ABC','ACDE','ACD','ADE','BCDE','BCD','BDE'和'CDE'
(子串的长度应该大于2,当然这很容易实现。)
不允许组合:'EDCBA','DBA','ECBA','AABB'等
任何人都可以建议我如何实现这一目标? PHP或JavaScript解决方案都是可以接受的。
答案 0 :(得分:1)
尝试以下:
function getSubString($str, $length = 3)
{
$len = strlen($str);
$arr = [];
for($i = 0; $i < $len; $i++)
{
$start = $i + 1;
$end = $len - 1;
while($start <= $end)
{
$l = $length - 1;
while($l + $start <= $len )
{
$eS = $str[$i].substr($str, $start, $l);
if ($str != $eS)
$arr[] = $eS;
$l += 1;
}
$start += 1;
}
}
return $arr;
}