【发布时间】:2021-08-23 15:56:40
【问题描述】:
有两个字符串分别称为str1 和str2,我正在尝试检查 str1 是否可以重新排列为 str2。
例如:假设 str1 = "aabbcamaomsccdd" 和 str2="commas"。 “str1”可以写出“逗号”这个词吗
function scramble(str1, str2) {
let arr=[];
let str1arr = str1.split("");
let str2arr = str2.split("");
let j=0;
for(let i=0; i<str1.length; i++){
if(str1arr[i]==str2arr[j]){
arr.push(str1arr[i]);
str1arr=str1arr.splice(i,1);
j++;
i=0;
}
}if(arr.toString()===str2arr.toString()){
return true;
}else{
return false;
}
}
如果str1arr[i]==str2arr[j] 基本上我尝试过,它将把str1arr[i] 值放在一个名为arr 的新数组上,最后它将比较str2 和arr 并返回True 或False。
我在匹配后使用str1arr=str1arr.splice(i,1); 删除i 的原因是因为每次i 和j 匹配时,for 循环都会自行从“i=0”检查i 将与其他重复的字母匹配(我希望这至少是它的作用:D)。
这是一个互联网问题,我没有通过测试。如果结果为 FALSE,我只会通过。
我想知道我在做什么和想错了。它的性能效率也不高,所以对此的任何评论也很棒。
【问题讨论】:
-
是否对字符串进行排序和比较工作?
-
你应该说只测试 string1 的一部分,而不是整个字符串,因为它改变了任务:stackoverflow.com/questions/40823054/…
-
我不明白str1的部分是什么意思。 Str1 基本上是像 str1="aabbcamaomsccdd" 这样的加扰字母,而 str2 是 = "commas" 可以说。问题是可以从str1中的字母中分辨出逗号。
标签: javascript