【发布时间】:2017-04-10 22:06:23
【问题描述】:
我在以下问题上遇到问题。如果 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。
仅使用小写字母 (a-z)。不包含标点符号或数字。 需要考虑性能。
下面是我目前的代码:
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;
}
你能帮我解决这个问题吗?
【问题讨论】:
-
我一头雾水,不就是检查
str2中的所有字符是否都在str1中那么简单吗,如果是,则返回true? -
另外,
if(str1 || str2 === "undefined") {并没有像你想象的那样做
标签: javascript function recursion scramble