提交leetcode时的问题
来源:2-5 计算子串代码演示

慕粉1461916001
2019-02-14
应该是长度超过正则的极限了
然后我用startsWith方法代替正则,成功通过了测试,但是速度非常慢,想问下老师还有别的更好的解决方案么
写回答
4回答
-
AqingCyan
2019-02-16
export default (s) => { let result = 0 // curLen 与 preLen 分别记录当前数字出现次数与前半部分数字出现次数,curLen小于等于prLen则符合条件 let curLen = 1 let preLen = 0 for (let i = 0; i < s.length - 1; i++) { // 指针往后移动,若当前数字与下一个数字一样则将curLen加1 if (s[i] === s[i + 1]) { curLen += 1 } else { // 否则就是遇到了不同之处,把相同子串的长度交给preLen,curLen再重新往后寻找 preLen = curLen curLen = 1 } if (preLen >= curLen) { result += 1 } } return result }
这是另一个方法,代码的执行效率高了一些。
632019-05-31 -
qq_行不更名坐不改姓我叫_0
2019-11-01
老师的算法可以用来练一练算法的解题思路,但是要说效率的话肯定还是leetcode上的解法更优
00 -
追风筝的人or
2019-07-03
这个老师没给解决吗?
00 -
慕斯卡7269444
2019-02-14
和你差不多,很慢。感觉match和slice两个API会比较慢而且比较耗内存
00
相似问题