[C_ST84-易] 差集
問題描述 :
差集:設 A 、 B 表兩集合, A 差集 B 以 A-B 表示之,其意思表示某些元素在 A 集合且不在 B 集合的元素集合。
範例 :
A 、 B 分別為兩個集合,集合裏有不同的元素,如下列所示,求出其 A 差集 B 之集合內容 :
A = 1,2,3,4,5,7,9
B = 2,4,6,8,10
A 差集 B : 1,3,5,7,9
求輸入任 2 個集分別為合 A 集合及 B 集合,求 A 差集 B 之集合 ?
輸入說明 :
輸入兩列的數字代表 A 及 B 兩集合,第一列為 A 集合,第一列為 B 集合,每一列集合中的元素以逗號分隔開來。
例如:
輸入 2 列字串 ( 第一列為 A 集合,第一列為 B 集合 ) :
1,2,3,4,5,7,9
2,4,6,8,10
輸出說明 :
輸出 A 及 B 兩集合之 A 差集 B 之集合 , 輸出元素以空白分隔開來, 須按照小到大排列 . 若空集合則輸出 null
例如, 按照小到大排列 輸出為:
1,3,5,7,9
範例 :
差集:設 A 、 B 表兩集合, A 差集 B 以 A-B 表示之,其意思表示某些元素在 A 集合且不在 B 集合的元素集合。
範例 :
A 、 B 分別為兩個集合,集合裏有不同的元素,如下列所示,求出其 A 差集 B 之集合內容 :
A = 1,2,3,4,5,7,9
B = 2,4,6,8,10
A 差集 B : 1,3,5,7,9
求輸入任 2 個集分別為合 A 集合及 B 集合,求 A 差集 B 之集合 ?
輸入說明 :
輸入兩列的數字代表 A 及 B 兩集合,第一列為 A 集合,第一列為 B 集合,每一列集合中的元素以逗號分隔開來。
例如:
輸入 2 列字串 ( 第一列為 A 集合,第一列為 B 集合 ) :
1,2,3,4,5,7,9
2,4,6,8,10
輸出說明 :
輸出 A 及 B 兩集合之 A 差集 B 之集合 , 輸出元素以空白分隔開來, 須按照小到大排列 . 若空集合則輸出 null
例如, 按照小到大排列 輸出為:
1,3,5,7,9
範例 :
輸入範例 | 輸出範例 |
1,3,5,7,9 2,4,6,8,10 | 1 3 5 7 9 |
4,5,6,7,8,9,10,13 2,3,4,6,7,8,10,15,19 | 5 9 13 |
29,23,15,17,31,11 12,10,9,11,23,6 17 | 15 29 31 |
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <algorithm>
- using namespace std;
- int main() {
- // [C_ST84-易] 差集
- // 差集 = 在 A 集合且不在 B 集合的元素集合
- // g++(c++11)
- string A, B;
- cin >> A >> B;
- int i_A[1000000];
- int i_B[1000000];
- //切割字串A
- stringstream ssa(A);
- string token;
- int countA = 0;
- while (getline(ssa, token, ','))
- {
- i_A[countA] = stoi(token);
- countA++;
- }
- //切割字串B
- stringstream ssb(B);
- int countB = 0;
- while (getline(ssb, token, ','))
- {
- i_B[countB] = stoi(token);
- countB++;
- }
- int fin[countA];
- fill(fin, fin+countA,0);
- bool exist = true;
- int fpos = 0;
- for(int i = 0;i < countA;i++)
- {
- for(int j = 0;j < countB;j++)
- {
- if(i_A[i] == i_B[j])
- {
- exist = false;
- }
- }
- if(exist == true)//不重複就放入fin
- {
- fin[fpos] = i_A[i];
- fpos++;
- }
- exist = true;
- }
- sort(fin, fin+fpos);
- for(int i = 0;i < fpos;i++)
- {
- if(i != fpos-1)
- {
- cout << fin[i] << " ";
- }
- else
- {
- cout << fin[i] << endl;
- }
- }
- return 0;
- }
沒有留言:
張貼留言