如何解决Scrambles:需要用大字符串codewars加快这段代码的速度
任务:
完成函数 scramble(str1,str2),如果 a str1 字符的一部分可以重新排列以匹配 str2,否则 返回错误。
注意事项:
仅使用小写字母 (a-z)。没有标点符号或数字 将被包括在内。性能需要考虑
我的代码可以很好地处理短字符串,但是当我尝试尝试时 - 我在长字符串上遇到错误 Execution Timed Out (12000 ms)
发生这种情况是因为过滤,但我不知道使用什么。
我的代码:
function scramble(str1,str2) {
str1 = str1 + '1'
return str2 == [...str2].filter((v) => str1.includes(v) && (str1 = str1.replace(v,'')) ).join('')
}
console.log(scramble('rkqodlw','world')) // true
console.log(scramble('katas','steak')) //false
console.log(scramble('scriptsjava','javascripts')) //true
console.log(scramble('aabbcamaomsccdd','commas')) // true
console.log(scramble('jscripts','javascript')) //false
console.log(scramble('scriptingjava','javascript'))// true
但我不知道在那里使用什么字符串来测试(多长时间)。
任何想法如何提高此代码的执行速度?我应该使用reduce而不是filter吗?
已更新(此代码更快但不那么可爱):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。