gpt4 book ai didi

javascript - 检查数组 A 的数组 B 排列

转载 作者:行者123 更新时间:2023-11-30 12:23:32 25 4
gpt4 key购买 nike

目标

给定数组 A 和数组 B,查看数组 B 的值是否在数组 A 内(忽略顺序/次序)。本质上,我们是在检查一个数组中包含的所有字母是否以某种形式包含在另一个数组中。

示例#1

mutation(['hello', 'hey']);

输出#1

false //no 'y' in 'hello'

示例 #2

mutation(['Alien', 'line']))

输出 #2

true //'l','i','n','e' is present in 'Alien'


我的伪代码/尝试

function mutation(arr) {
//split into two arrays with individual letters (for comparison purposes)
var arr0 = arr[0].split('');
var arr1 = arr[1].split('');

//if the letters in arr[1] exceed arr[0], there is no match (no matter what)
if (arr1 > arr0) {
return false;
}
//if arr0 > arr1 check each letter or arr1[i] against arr0[j].
else if (arr0 > arr1) {
for (i = 0; i < arr1.length; i++) {
//compare arr1[i] to all arr0[j] values
//if all of arr1 is present in arr0, return true
return true;
}

} else {
//If one of arr1's letters is not present in arr0, return false
return false;
}
}

mutation(['hello', 'hey']);

问题

  1. 我知道这可以通过“递归”解决,但不确定如何正确执行。我认为我走在正确的道路上,但我们将不胜感激。
  2. 如何使用 FOR 循环遍历两个不同的变量(例如 arr0[i] 和 arr1[j])?

最佳答案

例如,在 “bad” 中查找 “aaa” 时,您的伪代码会给出误报。当第一个字符串与第二个字符串中的字符匹配时,您需要从第一个字符串中删除这些字符,这样它们就不会被重复用于第二个字符串中的重复字符。

遍历第二个字符串中的字符并在第一个字符串中查找它们。如果找到,则将其从第一个字符串中删除,否则返回 false。如果找到所有字符,则返回 true:

function mutation(str1, str2){
for (var i = 0; i < str2.length; i++) {
var index = str1.indexOf(str2.charAt(i));
if (index == -1) return false;
str1 = str1.substr(0, index) + str1.substr(index + 1);
}
return true;
}

关于javascript - 检查数组 A 的数组 B 排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30269984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com