北邮OJ上的题目——1747

来源:互联网 发布:mac qq上传群文件 编辑:程序博客网 时间:2024/06/11 23:47

话说这个程序写的实在太笨重了~强烈希望写了这个程序的同学给我一份简单点的~任何语言都行~谢谢了~

Strings calculateSubmit: 352   Accepted:104Time Limit: 1000MS  Memory Limit: 65536K

Description
heimengnan最近学习了字符串。他想到整数和浮点数可以做加、减、乘等的运算,那么字符串之间是不是也能做运算呢?

给定字符串s1与s2 有如下的三种运算
+,-, *

s1与s2运算后的结果字符串中的字符要按照字典顺序(abcdef…z这个顺序就是字典序)重新排列后输出。s1和s2可能不以字典顺序给出,s1,与s2中只会出现a,b,c,d,…,z这26个字符。

+(加) 运算:
将s1与s2 中出现的字符相加。即把在s1与s2中的同一字符的个数的和作为结果字符串中该字符的个数。
(如果a在s1中出现1次,在s2中出现10次,那么a会在结果字符串中出现11次,b在s1中出现5次,在s2中未出现,那么b在结果字符串中出现5次。)
例如:
aabbddeaacdemk + kkbmsaa 的结果为 aaaaaabbbcdddeekkkmms

-(减) 运算:
将s1与s2中出现的字符相减。即把在s1与s2中的同一字符的个数的差的绝对值作为结果字符串中该字符的个数。
(如果a在s1中出现3次,在s2中出现 1次,那么a会在结果字符串中出现2次。如果b在s1中未出现,在s2中出现2次,那么b会在结果字符串中出现2次。)
例如:
aabbddeaacdemk – kkbmsaa 的结果为 aabcdddeeks

* (乘) 运算:
将s1与s2中出现的字符相乘,即把在s1与s2中的同一字符的个数的积作为结果字符串中该字符的个数。
(如果a在s1中出现3次,在s2中出现 7次,那么a会在结果字符串中出现21次。如果b在s1中未出现,在s2中出现100次,那么b会在结果字符串中也不会出现即0次。)
例如:
aabbddeaacdemk * kkbmsaa 的结果为 aaaaaaaabbkkm



Input
首先是一个整数t 代表测试数据的组数,然后是 t组运算式,每组运算式有三个部分:
s1 运算符 s2
s1,运算符,s2三个部分会用两个空格分隔,s1与s2中只可能出现a,b,c,d,e,…,z 26个小写字母。
s1,s2的长度小于1000,结果字符串的长度不会超过1000000。


Output
结果字符串,其中的字符按照字典书序排列,如果结果是空字符串,那么直接输出空行。

Sample Input

3
aabbddeaacdemk + kkbmsaa
aabbddeaacdemk - kkbmsaa
aabbddeaacdemk * kkbmsaa


Sample Output

aaaaaabbbcdddeekkkmms
aabcdddeeks
aaaaaaaabbkkm


Hint
建议使用scanf(“%s”,s);读入字符串

Source
heimengnan

原创粉丝点击