1
我正在尝试完成代码挑战的乐趣。这是场景。使功能更具性能
写function scramble(str1,str2)
返回true
如果str1
字符的部分可以被重新排列以匹配str2
,否则返回false
。
例如:
str1
是'rkqodlw'
和str2
是'world'
输出应返回true
。
str1
是'cedewaraaossoqqyt'
和str2
是'codewars'
应返回true
。
str1
是'katas'
和str2
是'steak'
应返回false
。
我写的函数有效,但需要很长时间才能执行所有可能的测试。我怎样才能让我的功能更高效?提前致谢。
这里是我写的函数:
function scramble(str1, str2) {
for (var i = 0; i < str1.length; i++) {
str2 = str2.replace(str1.charAt(i),'');
}
return str2.length == 0 ? true : false;
}
你是什么意思“太长” ? 'scramble(“piosdjfpasoidjfkoawmesfjatkjdsngfayksndglkjysngdlkjantokgsdannkogjmaoriewjgaeoirneorijgaeirgwoef”,“hello”)'在我的机器上需要0.06ms –
'return str2.length == 0? true:false;'可以重写'return!str2.length;'。对于(var i = 0,j = str1.length; i
61次测试通过后,由于“完成时间超过12000ms”而出错。 – Josh