如何递归地查找字符串中的一组字符
How to recursively find a set of a characters in a string?
我需要编写一个函数,在给定一组字符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
}
只需删除
|| key.length === 1
从您的功能。我不知道为什么你在里面有这个-当key.length是1但str.length大于key.lengh时,最终会给出错误的结果(因为你没有考虑跳过str中的一些字符并将字符串的后面字符与key匹配的情况)。
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 按下退格键时删除一组字符(Javascript)
- 捕获一组两个特殊字符之间的所有内容,但允许角色在正文中出现一次
- 负向后看:匹配一个子字符串's不在一组字符的前面
- Regex,只允许一组特定的字符(Javascript)
- 如何将一组ascii字符转换为字符串
- 用于验证一组特殊字符的正则表达式
- 如何递归地查找字符串中的一组字符
- 在交互方面,不要允许文本输入中的第一个字符是一个空格或一组空格
- 将输入字段中的字符限制为一组字符
- Javascript:使用regEx一次更改多个字符或一组字符
- 从脚本中删除一组字符
- 找出一个字符串是否由一组特定的字符组成
- Regex替换一组字符
- Javascript:验证名称是否由一组字符组成的有效方法
- 如何比较单独的字符串值存储在一个数组字符?Javascript
- 我怎么能正则表达式一组字符在javascript?( /)