回 帖 发 新 帖 刷新版面

主题:两个集合怎么相+,-,* ?

比如:输入两字符串,求同时出现在两字符串中,而不出现在一个字符串中的字母,数字。
这题不就是两字符串相减(差集)吗?应该怎么写呢?

回复列表 (共3个回复)

沙发

字符串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;

板凳

+,是合并两个集合
-,是找在A不在B(集合)的元素
*,是找在A又在B的元素

3 楼

集合之间的并`交`差`运算
设有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]

我来回复

您尚未登录,请登录后再回复。点此登录或注册