题解 | #子字符串频次#
子字符串频次
http://www.nowcoder.com/practice/053caf9d4d9d449bb45a6b02a572f71b
第一种方法
- 使用split分割(target为分割点)
- 有n个target返回的列表就会有n+1个元素
- 对列表取长度并且-1就会得到target的个数
const _searchStrIndexOf = (str, target) => {
return str.split(target).length - 1
}
第二种方法
- 使用正则表达来计算共有几个target
- match会返回符合条件的数组
const _searchStrIndexOf = (str, target) => {
// 补全代码
let reg=new RegExp(target,'g');
return str.match(reg).length;
}
第三种方法
- 使用str.indexOf找到对应的子字符串在str的索引值
- 如果索引值不为-1就表示找到
- 之后再进行寻找,但是indexOf的第二个参数应该为index+1
- 循环在index==-1的时候退出
const _searchStrIndexOf = (str, target) => {
let index = str.indexOf(target)
let sum = 0
while (index > -1) {
index = str.indexOf(target, index + 1)
sum++
}
return sum
}