用js实现递归算法获取字符串的所有连续子串
时间: 2024-01-28 17:03:38 浏览: 61
递归算法实现随机串和全排列的生成
5星 · 资源好评率100%
```javascript
function getAllSubstrings(str) {
var result = [];
for (var i = 0; i < str.length; i++) {
for (var j = i + 1; j < str.length + 1; j++) {
result.push(str.slice(i, j));
}
}
return result;
}
```
这里是非递归的实现,如果需要递归实现,可以考虑以下步骤:
1. 定义一个函数,输入为字符串和起始下标(初始为0),输出为所有以该起始下标开始的子串
2. 在函数内部分别递归调用起始下标加1和不加1的情况,将两个结果拼接在一起并返回
3. 当起始下标等于字符串长度时,返回空数组
下面是代码示例:
```javascript
function getAllSubstrings(str, startIndex = 0) {
if (startIndex === str.length) {
return [];
}
const substrings = getAllSubstrings(str, startIndex + 1);
substrings.push(str[startIndex]);
for (let i = 0; i < substrings.length - 1; i++) {
substrings[i] = str[startIndex] + substrings[i];
}
return substrings;
}
```
阅读全文