FCC-AAS2-Symmetric Difference

题目:

创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) ( or )数组.

给出两个集合 (如集合 A = {1, 2, 3} 和集合 B = {2, 3, 4}), 而数学术语 "对等差分" 的集合就是指由所有只在两个集合其中之一的元素组成的集合(A △ B = C = {1, 4}). 对于传入的额外集合 (如 D = {2, 3}), 你应该安装前面原则求前两个集合的结果与新集合的对等差分集合 (C △ D = {1, 4} △ {2, 3} = {1, 2, 3, 4}).

当你遇到困难的时候,记得查看错误提示、阅读文档、搜索、提问。

这是一些对你有帮助的资源:

 1 function sym(args) {
 2
 3   var arr = [];
 4
 5   //把变量放在一个数组里
 6   for(var i=0; i<arguments.length; i++) {
 7     arr.push(arguments[i]);  //[[1,2,3],[5,2,1,4]]
 8   }
 9
10   //找出只在各自集合中的元素
11   var temp = arr.reduce(function(prev,cur,index,array) {
12     //返回prev中cur没有的元素
13     var onlyInPrev = prev.filter(function(item){
14       return cur.indexOf(item) === -1;  //[3]
15     });
16     //返回cur中prev没有的元素
17     var onlyInCur = cur.filter(function(item){
18       return prev.indexOf(item) === -1;  //[5,4]
19     });
20     //合并
21     return onlyInPrev.concat(onlyInCur);
22   });
23
24   //return temp;
25   //去掉重复的数字
26   return temp.filter(function(item,index,array){
27     return array.indexOf(item) === index;
28   });
29
30 }
31
32 sym([1, 2, 3], [5, 2, 1, 4]);

sym([1, 2, 3], [5, 2, 1, 4]) 应该返回 [3, 4, 5].

sym([1, 2, 3], [5, 2, 1, 4]) 应该只包含三个元素.

sym([1, 2, 5], [2, 3, 5], [3, 4, 5]) 应该返回 [1, 4, 5]

sym([1, 2, 5], [2, 3, 5], [3, 4, 5]) 应该只包含三个元素.

sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]) 应该返回 [1, 4, 5].

sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]) 应该只包含三个元素.

sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3]) 应该返回 [2, 3, 4, 6, 7].

sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3]) 应该只包含五个元素.

sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]) 应该返回 [1, 2, 4, 5, 6, 7, 8, 9].

sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]) 应该只包含八个元素.

---------------------------------------------------------------------------------------

我的Free Code Camp地址.

时间: 2024-10-16 09:39:31

FCC-AAS2-Symmetric Difference的相关文章

FCC Symmetric Difference

创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) (△ or ⊕)数组. 给出两个集合 (如集合 A = {1, 2, 3}和集合 B = {2, 3, 4}), 而数学术语 "对等差分" 的集合就是指由所有只在两个集合其中之一的元素组成的集合(A △ B = C = {1, 4}). 对于传入的额外集合 (如 D = {2, 3}), 你应该安装前面原则求前两个集合的结果与新集合的对等差分集合 (C △ D = {1, 4} △ 

js-FCC算法-Symmetric Difference

创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) (△ or ⊕)数组. 给出两个集合 (如集合 A = {1, 2, 3} 和集合 B = {2, 3, 4}), 而数学术语 "对等差分" 的集合就是指由所有只在两个集合其中之一的元素组成的集合(A △ B = C = {1, 4}). 对于传入的额外集合 (如 D = {2, 3}), 你应该安装前面原则求前两个集合的结果与新集合的对等差分集合 (C △ D = {1, 4} △

hackerrank---Sets - Symmetric Difference

题目链接 集合操作 附上代码: 1 M = int(input()) 2 m = set(map(int, raw_input().strip().split())) 3 N = int(input()) 4 n = set(map(int, raw_input().strip().split())) 5 tmp = sorted(m.union(n).difference(m.intersection(n))) 6 for i in xrange(len(tmp)): 7 print tmp[

Symmetric Difference FreeCodeCamp

function sym(args) { var arr = Array.prototype.slice.call(arguments); return arr.reduce((arr1, arr2) => { return arr1.concat(arr2).filter((val) => { return arr1.indexOf(val) === -1 || arr2.indexOf(val) === -1; }).filter((val, index, arr) => { ret

FCC高级习题

Symmetric Difference 创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) (△or ⊕)数组. 给出两个集合 (如集合 A = {1, 2, 3} 和集合 B = {2, 3, 4}), 而数学术语 "对等差分" 的集合就是指由所有只在两个集合其中之一的元素组成的集合(A △ B = C = {1, 4}). 对于传入的额外集合 (如 D = {2, 3}), 你应该安装前面原则求前两个集合的结果与新集合的对等差分

FCC Advanced Algorithm Scripting

1.Validate US Telephone Numbers 如果传入字符串是一个有效的美国电话号码,则返回 true. 用户可以在表单中填入一个任意有效美国电话号码. 下面是一些有效号码的例子(还有下面测试时用到的一些变体写法): 555-555-5555 (555)555-5555 (555) 555-5555 555 555 5555 5555555555 1 555 555 5555 1 555-555-5555 1 (555) 555-55551(555)555-5555 在本节中你

014-python基础-set集合

集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 注:作为一个无序的集合,sets不记录元素位置或者插入点.因此sets不支持indexing,slicing(切片) 1 class set(object): 2 """ 3 set() -> new empty set object 4 set(iterable) -> new set object 5 6 Buil

Python数据类型及其方法详解

Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知识回顾. 一.整型和长整型 整型:数据是不包含小数部分的数值型数据,比如我们所说的1.2.3.4.122,其type为"int" 长整型:也是一种数字型数据,但是一般数字很大,其type为"long" 在python2中区分整型和长整型,在32位的机器上,取值范围是-2

(线段树)poj3225-Help with Intervals

LogLoader, Inc. is a company specialized in providing products for analyzing logs. While Ikki is working on graduation design, he is also engaged in an internship at LogLoader. Among his tasks, one is to write a module for manipulating time intervals