主题:两个集合怎么相+,-,* ?
cuizeyu
[专家分:0] 发布于 2008-07-21 12:59:00
比如:输入两字符串,求同时出现在两字符串中,而不出现在一个字符串中的字母,数字。
这题不就是两字符串相减(差集)吗?应该怎么写呢?
回复列表 (共3个回复)
沙发
小田甜 [专家分:3910] 发布于 2008-07-28 11:29:00
字符串a, b中a-b表示把a,b相连,忽略掉中间的空格。
集合a, b相减表示保留所有在且只在a中的元素。
题目要求求同时在两个串中的字符就是求交集(乘)
程序应该:
1. 读入两个字符串
2. 用for把两个字符串转化成为集合类型for i:=1 to length(s) do a:=a+[s[i]]; 其中s:string; a:set of char;
3. 求a*b c:=a*b
4. 打印c for h:=#0 to #255 do if h in c then write(h); 其中c:set of char;h:char;
板凳
xuyifan [专家分:40] 发布于 2008-07-28 14:58:00
+,是合并两个集合
-,是找在A不在B(集合)的元素
*,是找在A又在B的元素
3 楼
yjxyangjiaxin [专家分:50] 发布于 2008-07-31 07:14:00
集合之间的并`交`差`运算
设有A,B两个集合,A=[1,3,4,5],B=[4,5,6,7].
运算符 名称 表现形式 运算结果
+ 并集 A+B [1,3,4,5,6,7]
* 交集 A*B [4,5]
- 差集 A-B [1,3]
我来回复