有很多解决方案可以找到可能的子字符串。我已经尝试过this php 解决方案。
但是我有具体要求。我需要使用顺序中的字符生成子字符串。例如:如果给定的字符串是:'ABCDE'
可能的组合是:'ABCD'、'ABC'、'ACDE'、'ACD'、'ADE'、'BCDE'、'BCD'、'BDE' 和 'CDE'
(子串长度应大于2,当然这很容易实现。)
不允许的组合:“EDCBA”、“DBA”、“ECBA”、“AABB”等
有人可以建议我如何实现这一目标吗? PHP 或 JavaScript 解决方案都可以接受。
最佳答案
尝试以下:
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;
}
关于javascript - 获取顺序中所有可能的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29861798/