Javascript 如何创建检查每个子字符串的递归函数?

Javascript 如何创建检查每个子字符串的递归函数?,javascript,recursion,palindrome,Javascript,Recursion,Palindrome,如何使用递归函数查找任何给定字符串中的所有子字符串?我知道如何使用2 for循环,但我不知道如何使用递归。需要检查每个子字符串是否为回文。这是我的非迭代解 console.log(回文(“女士”); 函数回文(word){ 设noOfP=0; for(设i=0;i{ 让countPalindrome=(str)=>{ 如果(str.lengthstring.length>1&& string.split(“”).reverse().join(“”===string; 常量回文数=字符串=>子列

如何使用递归函数查找任何给定字符串中的所有子字符串?我知道如何使用2 for循环,但我不知道如何使用递归。需要检查每个子字符串是否为回文。这是我的非迭代解

console.log(回文(“女士”);
函数回文(word){
设noOfP=0;
for(设i=0;i}
这是递归版本。这可能不是最佳的优化解决方案,但这将解决上述问题

let str=“forgekskeefor”
设noOfP=0;
让GetSubstring=(str)=>{
让countPalindrome=(str)=>{
如果(str.length<2)
返回
否则{
if(str==str.split(“”).reverse().join(“”){
console.log(str);
noOfP++;
}
countPalindrome(str.substring(0,str.length-1))
}
}
可数回文组(str)
如果(str.length<2){
返回noOfP;
}
返回getsubstring(str.substring(1))
}

log(`Total Palindromes:${getSubstrings(str)}`)
下面是我要做的:

const子列表=(列表,最右边=真)=>{
if(list.length==0)返回[];
常量结果=[list,…子列表(list.slice(0,-1),false)];
if(最右边的)result.push(…子列表(list.slice(1),true));
返回结果;
};
常量isPalindrome=string=>string.length>1&&
string.split(“”).reverse().join(“”===string;
常量回文数=字符串=>子列表(字符串).filter(isAlindrome);

console.log(palindromes(“malayalam”);
递归函数应检查给定字符串是否为回文,然后循环遍历每个短一个字符的子字符串,并在该子字符串上调用自己。例如,如果字符串为“ABC”(3个字符长),函数将检查“ABC”对于回文性,则调用自身两次:首先通过传递“AB”,然后通过传递“BC”(即,所有长度为2个字符的子字符串)。当要检查的字符串只有一个字符长时,函数不再递归。我昨天刚刚回答了一个类似的问题。也许有帮助?这就是我的确切赋值lol