python setの応用
2703 ワード
You are given two sorted arrays that contain only integers. Your task is to find a way to merge them into a single one, sorted inascending order. Complete the function
You don't need to worry about validation, since
Note:
Examples
この問題はlist.extend()は2つのlistを接続し、それから重くして、最後にlist.sort();ただしpython自体には組み込み関数set()があります.pythonでは、setは基本的なデータ型であり、可変集合set()と可変集合frozenset()の2種類を含む.set()集合は無秩序であり(スライスは使用できない)、重複しない.
コレクションの作成
要素の追加、add-全体の追加、update-分割の追加、効果の上で違いがあります
要素の削除
集合の操作記号
数学記号
pythonオペレータ
意味
-
-
差分、相対補完
∩
&
交差
∪
|
へいれつ
∈
in
メンバー関係
∉
not in
メンバー関係ではありません
に等しい
==
に等しい
等しくない
!=
等しくない
だから集合の思想に従って、本文の冒頭の問題はこのように解決することができます
あるいは直接集合の互いに異性に従って、set()関数自体が返すのは1つの集合で、そのため自身は重み付けする機能があって、
mergeArrays(arr1, arr2)
, where arr1
and arr2
are the original sorted arrays. You don't need to worry about validation, since
arr1
and arr2
must be arrays with 0 or more Integers. If both arr1
and arr2
are empty, then just return an empty array. Note:
arr1
and arr2
may be sorted in different orders. Also arr1
and arr2
may have same integers. Remove duplicated in the returned result. Examples
arr1 = [1, 2, 3, 4, 5];
arr2 = [6, 7, 8, 9, 10];
mergeArrays(arr1, arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr3 = [1, 3, 5, 7, 9];
arr4 = [10, 8, 6, 4, 2];
mergeArrays(arr3, arr4); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr5 = [1, 3, 5, 7, 9, 11, 12];
arr6 = [1, 2, 3, 4, 5, 10, 12];
mergeArrays(arr5, arr6); // [1, 2, 3, 4, 5, 7, 9, 10, 11, 12]
この問題はlist.extend()は2つのlistを接続し、それから重くして、最後にlist.sort();ただしpython自体には組み込み関数set()があります.pythonでは、setは基本的なデータ型であり、可変集合set()と可変集合frozenset()の2種類を含む.set()集合は無秩序であり(スライスは使用できない)、重複しない.
コレクションの作成
>>> set('boy')
set(['y', 'b', 'o'])
>>> set('boyboyboy')
set(['y', 'b', 'o'])
要素の追加、add-全体の追加、update-分割の追加、効果の上で違いがあります
>>> s=set('girl')
>>> s
set(['i', 'r', 'l', 'g'])
>>> s.add('boy')
>>> s
set(['i', 'boy', 'r', 'l', 'g'])
>>> s.update('man')
>>> s
set(['a', 'boy', 'g', 'i', 'm', 'l', 'n', 'r'])
要素の削除
>>> s=set('boy')
>>> s
set(['y', 'b', 'o'])
>>> s.remove('o')
>>> s
set(['y', 'b'])
集合の操作記号
数学記号
pythonオペレータ
意味
-
-
差分、相対補完
∩
&
交差
∪
|
へいれつ
∈
in
メンバー関係
∉
not in
メンバー関係ではありません
に等しい
==
に等しい
等しくない
!=
等しくない
だから集合の思想に従って、本文の冒頭の問題はこのように解決することができます
def func(arr1,arr2):
return sorted(set(arr1)|set(arr2))
あるいは直接集合の互いに異性に従って、set()関数自体が返すのは1つの集合で、そのため自身は重み付けする機能があって、
def func(arr1,arr2):
return sorted(set(arr1+arr2))