我需要编写一个函数,其中给定一组字符key
找到字符串str
中出现的唯一实例的数量,以便
findKeys("fooo","foo") //returns 3
//foo-
//fo-o
//f-oo
findKeys("foobarfoo","obo") //returns 4]
//--ob----o
//-o-b---o-
//-o-b----o
//--ob---o-
以下是我到目前为止的功能,我不知道我错过了什么,但我知道它没有找到所有的实例,所以它不是正确迭代字符串。
function findKeys(str, key) {
var count = count || 0;
if(str.length <= key.length || key.length === 1) {
if(str.slice(0, key.length) === key) {
return 1
}
return 0
}
if(str[0] === key[0]) {
count += findKeys(str.slice(1), key.slice(1))
}
count += findKeys(str.slice(1), key)
return count
}
答案 0 :(得分:2)
只需删除
|| key.length === 1
来自你的功能。我不确定你为什么会在那里 - 当key.length为1但str.length为&gt;时,最终会得到错误的结果。 key.length(因为您没有考虑在str中跳过某些字符并使用键匹配字符串后面的字符的情况)。