【发布时间】:2020-09-20 21:39:09
【问题描述】:
我正在尝试解决以下任务:
完成函数 scramble(str1, str2),如果 str1 字符的一部分可以重新排列以匹配 str2,则返回 true,否则返回 false。
我编写的代码通过了初始测试,但在最后一次尝试中失败并出现以下错误:“执行超时(12000 毫秒)”。 这里有什么问题?
function scramble(str1, str2) {
let array1 = str1.split("").sort();
let array2 = str2.split("").sort();
let count = 0;
for(let a = 0; a <= array1.length && count < array2.length; a++) {
if(array2[count] === array1[a]){
count++;
}
}
return (count === array2.length);
}
【问题讨论】:
-
你能添加函数返回真/假的字符串对示例吗?
-
最终失败的测试是什么?
-
顺便说一句,你的函数有一个小“错误”(可能它甚至没有改变返回值):
a不应该变成array1.length,它应该是a < array1.length而不是a <= array1.length。 -
@LucaKiebel,例子是
scramble('rkqodlw', 'world') ==> True scramble('cedewaraaossoqqyt', 'codewars') ==> True scramble('katas' , '牛排') ==> 假
标签: javascript