我在下面的问题上遇到了麻烦。如果 str1 的一部分可以重新排列为 str2,我基本上必须编写一个返回 true 的代码/函数。
编写函数 scramble(str1,str2),如果 str1 字符的一部分可以重新排列以匹配 str2,则返回 true,否则返回 false。
例如:str1 是 'rkqodlw' 而 str2 是 'world' 输出应该返回 true。str1 是 'cedewaraaossoqqyt' 而 str2 是 'codewars' 应该返回 true。str1 是 'katas' 而 str2 是 'steak' 应该返回 false。
仅使用小写字母 (az)。不包含标点符号或数字。需要考虑性能。
以下是我拥有的当前代码:
function scramble(str1, str2) {
var first; //longer string
var second; //shorter string
if(str1 || str2 === "undefined") {
return false;
}
if(str1.length > str2.length) {
first = str1;
second = str2
} else if(str2.length > str1.length) {
first = str2;
second = str1;
}
for (i=0; i<second.length; i++) {
if (first.indexOf(second[i]) === -1) {
return false;
}
}
return true;
}
你能帮我解决这个问题吗?